diff --git a/www/common/common-thumbnail.js b/www/common/common-thumbnail.js index 5559d8065..f46d83b24 100644 --- a/www/common/common-thumbnail.js +++ b/www/common/common-thumbnail.js @@ -44,27 +44,29 @@ define([ var dim = Thumb.dimension; // if the image is too small, don't bother making a thumbnail - if (h <= dim || w <= dim) { return null; } + if (h <= dim && w <= dim) { return null; } // the image is taller than it is wide, so scale to that. var r = dim / (h > w? h: w); // ratio var d; if (h > w) { - d = Math.floor(((h * r) - dim) / 2); + var newW = Math.floor(w*r); + d = Math.floor((dim - newW) / 2); return { - x1: 0, - x2: dim, - y1: d, - y2: dim + d, + x: d, + w: newW, + y: 0, + h: dim, }; } else { - d = Math.floor(((w * r) - dim) / 2); + var newH = Math.floor(h*r); + d = Math.floor((dim - newH) / 2); return { - x1: d, - x2: dim + d, - y1: 0, - y2: dim, + x: 0, + w: dim, + y: d, + h: newH }; } }; @@ -80,7 +82,7 @@ define([ c2.height = Thumb.dimension; var ctx = c2.getContext('2d'); - ctx.drawImage(canvas, D.x1, D.y1, D.x2, D.y2); + ctx.drawImage(canvas, D.x, D.y, D.w, D.h); c2.toBlob(function (blob) { cb(void 0, blob); }); @@ -91,7 +93,10 @@ define([ var img = new Image(); img.onload = function () { - Thumb.fromImage(img, cb); + Thumb.fromImage(img, function (err, t) { + if (err === 'TOO_SMALL') { return void cb(void 0, blob); } + cb(err, t); + }); }; img.onerror = function () { cb('ERROR');