[Pkg-javascript-commits] [pdf.js] 92/109: Extract the conversion from `canvas` to `image` into a helper function in `PDFThumbnailView`
David Prévot
taffit at moszumanska.debian.org
Fri Sep 25 03:04:22 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit ebce9281499a18b5ac4ae3b5e9cdc7b5f06ecbb0
Author: Jonas Jenwald <jonas.jenwald at gmail.com>
Date: Fri Sep 11 13:11:49 2015 +0200
Extract the conversion from `canvas` to `image` into a helper function in `PDFThumbnailView`
*Follow-up to PR 6299.*
This patch reduces unnecessary code duplication for the `canvas` to `image` conversion. It also does a bit of re-ordering (and adds new lines) in `_getPageDrawContext`, since that function currently is a bit hard to read.
---
web/pdf_thumbnail_view.js | 47 ++++++++++++++++++++++++++++++++---------------
1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/web/pdf_thumbnail_view.js b/web/pdf_thumbnail_view.js
index 0d4752f..71488c1 100644
--- a/web/pdf_thumbnail_view.js
+++ b/web/pdf_thumbnail_view.js
@@ -186,24 +186,48 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
var ctx = canvas.getContext('2d');
var outputScale = getOutputScale(ctx);
+
canvas.width = (this.canvasWidth * outputScale.sx) | 0;
canvas.height = (this.canvasHeight * outputScale.sy) | 0;
canvas.style.width = this.canvasWidth + 'px';
canvas.style.height = this.canvasHeight + 'px';
+
if (!noCtxScale && outputScale.scaled) {
ctx.scale(outputScale.sx, outputScale.sy);
}
- this.image = document.createElement('img');
- this.image.id = this.renderingId;
- this.image.style.height = canvas.style.height;
- this.image.style.width = canvas.style.width;
- this.image.className = 'thumbnailImage';
- this.image.setAttribute('aria-label', mozL10n.get('thumb_page_canvas',
+
+ var image = document.createElement('img');
+ image.id = this.renderingId;
+
+ image.className = 'thumbnailImage';
+ image.setAttribute('aria-label', mozL10n.get('thumb_page_canvas',
{ page: this.id }, 'Thumbnail of Page {{page}}'));
+
+ image.style.width = canvas.style.width;
+ image.style.height = canvas.style.height;
+
+ this.image = image;
this.ring.appendChild(this.image);
+
return ctx;
},
+ /**
+ * @private
+ */
+ _convertCanvasToImage: function PDFThumbnailView_convertCanvasToImage() {
+ if (!this.canvas) {
+ return;
+ }
+ this.image.src = this.canvas.toDataURL();
+
+ // Zeroing the width and height causes Firefox to release graphics
+ // resources immediately, which can greatly reduce memory consumption.
+ this.canvas.width = 0;
+ this.canvas.height = 0;
+ delete this.canvas;
+ },
+
draw: function PDFThumbnailView_draw() {
if (this.renderingState !== RenderingStates.INITIAL) {
console.error('Must be in new state before drawing');
@@ -232,12 +256,8 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
rejectRenderPromise(error);
return;
}
-
- self.image.src = self.canvas.toDataURL();
- self.canvas.width = 0;
- self.canvas.height = 0;
- delete self.canvas;
self.renderingState = RenderingStates.FINISHED;
+ self._convertCanvasToImage();
if (!error) {
resolveRenderPromise(undefined);
@@ -319,10 +339,7 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
}
ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight,
0, 0, canvas.width, canvas.height);
- this.image.src = canvas.toDataURL();
- this.canvas.width = 0;
- this.canvas.height = 0;
- delete this.canvas;
+ this._convertCanvasToImage();
}
};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list