[Pkg-javascript-commits] [pdf.js] 14/116: Better thumbnail image scaling
David Prévot
taffit at moszumanska.debian.org
Fri Mar 6 16:19:56 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 32c32c18e3e84d93f7dad7c4cbf1055ba49711b8
Author: fkaelberer <o_0_o at gmx.de>
Date: Fri Jan 2 15:40:30 2015 +0100
Better thumbnail image scaling
---
web/thumbnail_view.js | 36 +++++++++++++++++++-----------------
1 file changed, 19 insertions(+), 17 deletions(-)
diff --git a/web/thumbnail_view.js b/web/thumbnail_view.js
index 1e16a7d..747db19 100644
--- a/web/thumbnail_view.js
+++ b/web/thumbnail_view.js
@@ -218,34 +218,36 @@ var ThumbnailView = function thumbnailView(container, id, defaultViewport,
}
this.renderingState = RenderingStates.FINISHED;
var ctx = this.getPageDrawContext();
-
- var reducedImage = img;
- var reducedWidth = img.width;
- var reducedHeight = img.height;
-
- // drawImage does an awful job of rescaling the image, doing it gradually
- var MAX_SCALE_FACTOR = 2.0;
- if (Math.max(img.width / ctx.canvas.width,
- img.height / ctx.canvas.height) > MAX_SCALE_FACTOR) {
- reducedWidth >>= 1;
- reducedHeight >>= 1;
- reducedImage = getTempCanvas(reducedWidth, reducedHeight);
+ var canvas = ctx.canvas;
+
+ if (img.width <= 2 * canvas.width) {
+ ctx.drawImage(img, 0, 0, img.width, img.height,
+ 0, 0, canvas.width, canvas.height);
+ } else {
+ // drawImage does an awful job of rescaling the image, doing it gradually
+ var MAX_NUM_SCALING_STEPS = 3;
+ var reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS;
+ var reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS;
+ var reducedImage = getTempCanvas(reducedWidth, reducedHeight);
var reducedImageCtx = reducedImage.getContext('2d');
+
+ while (reducedWidth > img.width || reducedHeight > img.height) {
+ reducedWidth >>= 1;
+ reducedHeight >>= 1;
+ }
reducedImageCtx.drawImage(img, 0, 0, img.width, img.height,
0, 0, reducedWidth, reducedHeight);
- while (Math.max(reducedWidth / ctx.canvas.width,
- reducedHeight / ctx.canvas.height) > MAX_SCALE_FACTOR) {
+ while (reducedWidth > 2 * canvas.width) {
reducedImageCtx.drawImage(reducedImage,
0, 0, reducedWidth, reducedHeight,
0, 0, reducedWidth >> 1, reducedHeight >> 1);
reducedWidth >>= 1;
reducedHeight >>= 1;
}
+ ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight,
+ 0, 0, canvas.width, canvas.height);
}
- ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight,
- 0, 0, ctx.canvas.width, ctx.canvas.height);
-
this.hasImage = true;
};
};
--
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