add image size constraint

constrain image file size and scale down image if necessary
This commit is contained in:
Georg Fischer 2013-09-28 13:29:35 +02:00
parent 97c8e633ac
commit 5bc03c7ce7

View File

@ -6,6 +6,9 @@ define(
var image; var image;
var initialized = false; var initialized = false;
// max 2k px per side, so 2000 * 2000
var max_image_area = 4000000;
function init( shared ) function init( shared )
{ {
signals = shared.signals; signals = shared.signals;
@ -22,6 +25,8 @@ define(
function imageLoaded() function imageLoaded()
{ {
constrainImageSize( image );
signals['image-loaded'].dispatch( image ); signals['image-loaded'].dispatch( image );
initialized = true; initialized = true;
} }
@ -40,6 +45,25 @@ define(
} }
} }
function constrainImageSize( img )
{
var ratio = 0;
var image_width = img.width;
var image_height = img.height;
var image_area = image_width * image_height;
if ( image_area > max_image_area )
{
ratio = max_image_area / image_area;
image_width *= ratio;
image_height *= ratio;
img.naturalWidth = Math.floor( image_width );
img.naturalWidth = Math.floor( image_height );
}
}
return { init: init }; return { init: init };
} }
); );