"use strict";
var wcuf_current_multiple_file_checked=0;
var wcuf_imgldd_error;
function wcuf_check_image_file_width_and_height(files, evt, current_elem, callback, max_image_width, max_image_height,min_image_width, min_image_height, min_image_dpi ,max_image_dpi,dimensions_logical_operator){
var wcuf_imgldd_current_file_loaded=0;
wcuf_imgldd_error=false;
wcuf_current_multiple_file_checked=0;
var sizes_obj={'max_image_width': max_image_width,
'max_image_height':max_image_height,
'min_image_height':min_image_height,
'min_image_width': min_image_width,
'min_dpi': min_image_dpi,
'max_dpi': max_image_dpi,
'ratio_x':current_elem.data("ratio-x"),
'ratio_y':current_elem.data("ratio-y"),
'dimensions_logical_operator': dimensions_logical_operator,
'images_to_remove': [],
'bad_encoded_images':[]
};
wcuf_check_next_single_file(0);
function wcuf_check_next_single_file(i){
if(i < files.length)
var loadingImage=loadImage(
files[i],
function(img, meta){
wcuf_image_loaded(img, meta, files, wcuf_current_multiple_file_checked, evt, callback, sizes_obj);
wcuf_check_next_single_file(++wcuf_current_multiple_file_checked);
},
{
meta:true
}
);
}
function wcuf_floor_at(number, decimals){
const number_of_decimals=10 * decimals;
return Math.floor(number * number_of_decimals) / number_of_decimals;
}
function wcuf_image_loaded(img, metadata, files, file_index, evt, callback, sizes_obj){
var file_unique_id=files[file_index].unique_id;
var file_name=files[file_index].name;
var already_added=false;
if(img.type==="error"){
wcuf_imgldd_current_file_loaded++;
if(sizes_obj.min_image_width!=0||sizes_obj.min_image_height!=0||sizes_obj.max_image_height!=0||sizes_obj.max_image_width!=0||sizes_obj.min_dpi!=0||sizes_obj.max_dpi!=0 ||
sizes_obj.ratio_x!=0||sizes_obj.ratio_y
){
wcuf_imgldd_error=true;
sizes_obj.bad_encoded_images.push({unique_id:file_unique_id, name:file_name});
}
if(wcuf_imgldd_current_file_loaded==files.length){
callback(evt,wcuf_imgldd_error,this, sizes_obj);
}}else{
wcuf_imgldd_current_file_loaded++;
if(!files[file_index].hasOwnProperty('is_cropped')){
if(sizes_obj.ratio_x!=0&&sizes_obj.ratio_y!=0&&(wcuf_floor_at(sizes_obj.ratio_x/sizes_obj.ratio_y,2)!=wcuf_floor_at(img.width/img.height,2))){
wcuf_imgldd_error=true;
}
if((sizes_obj.min_dpi!=0||sizes_obj.max_dpi!=0)&&!wcuf_check_image_dpi(metadata, callback, evt, sizes_obj)){
wcuf_imgldd_error=true;
if(!already_added){
already_added=true;
sizes_obj.images_to_remove.push({unique_id:file_unique_id, name:file_name});
}
}
if(sizes_obj.dimensions_logical_operator=='or'){
if(((sizes_obj.max_image_width!=0&&img.width > sizes_obj.max_image_width)||(sizes_obj.min_image_width!=0&&img.width < min_image_width)) &&
((sizes_obj.max_image_height!=0&&img.height > sizes_obj.max_image_height)||(sizes_obj.min_image_height!=0&&img.height < min_image_height))){
wcuf_imgldd_error=true;
if(!already_added){
already_added=true;
sizes_obj.images_to_remove.push({unique_id:file_unique_id, name:file_name});
}}
}
else
if(((sizes_obj.max_image_width!=0&&img.width > sizes_obj.max_image_width)||(sizes_obj.min_image_width!=0&&img.width < min_image_width)) ||
((sizes_obj.max_image_height!=0&&img.height > sizes_obj.max_image_height)||(sizes_obj.min_image_height!=0&&img.height < min_image_height))){
wcuf_imgldd_error=true;
if(!already_added){
already_added=true;
sizes_obj.images_to_remove.push({unique_id:file_unique_id, name:file_name});
}}
}
if(wcuf_imgldd_current_file_loaded==files.length){
callback(evt,wcuf_imgldd_error, this, sizes_obj);
}}
}
function wcuf_check_image_dpi(metadata, callback, evt, sizes_obj){
if(!metadata.exif){
return false;
}
var resX=metadata.exif.get('XResolution');
var resY=metadata.exif.get('YResolution');
var resUnit=metadata.exif.get('ResolutionUnit');
if((resX!=resY||resUnit!=2||(resX < sizes_obj.min_dpi&&sizes_obj.min_dpi > 0)||(resX > sizes_obj.max_dpi&&sizes_obj.max_dpi > 0))
){
return false;
}
return true;
}};