Skip to content

Commit 6d40992

Browse files
committed
optimizations
1 parent cff0be6 commit 6d40992

File tree

1 file changed

+33
-30
lines changed

1 file changed

+33
-30
lines changed

smartcrop.js

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -221,10 +221,13 @@ SmartCrop.prototype = {
221221
options = this.options,
222222
od = output.data,
223223
downSample = options.scoreDownSample,
224-
invDownSample = 1/downSample;
225-
for(var y = 0; y < output.height*downSample; y+=downSample) {
226-
for(var x = 0; x < output.width*downSample; x+=downSample) {
227-
var p = (~~(y*invDownSample)*output.width+~~(x*invDownSample))*4,
224+
invDownSample = 1/downSample,
225+
outputHeightDownSample = output.height*downSample,
226+
outputWidthDownSample = output.width*downSample,
227+
outputWidth = output.width;
228+
for(var y = 0; y < outputHeightDownSample; y+=downSample) {
229+
for(var x = 0; x < outputWidthDownSample; x+=downSample) {
230+
var p = (~~(y*invDownSample)*outputWidth+~~(x*invDownSample))*4,
228231
importance = this.importance(crop, x, y);
229232
score.skin += od[p]/255*(od[p+1]/255+options.skinBias)*importance;
230233
score.detail += od[p+1]/255*importance;
@@ -240,33 +243,33 @@ SmartCrop.prototype = {
240243
//console.log(score);
241244
return score;
242245
},
243-
_score: function(output, crop){
244-
var score = {
245-
detail: 0,
246-
saturation: 0,
247-
skin: 0,
248-
total: 0
249-
},
250-
options = this.options,
251-
downSample = options.scoreDownSample,
252-
invDownSample = 1/downSample;
253-
for(var y = crop.y; y < crop.y+crop.height; y+=downSample) {
254-
for(var x = crop.x; x < crop.x+crop.width; x+=downSample) {
255-
var p = (~~(y*invDownSample)*output.width+~~(x*invDownSample))*4;
256-
score.detail += output.data[p+1]/255*this.importance((x-crop.x)/crop.width, (y-crop.y)/crop.height);
257-
score.saturation += output.data[p+2]/255*this.importance((x-crop.x)/crop.width, (y-crop.y)/crop.height);
258-
score.skin += output.data[p]/255*(output.data[p+1]/255+options.skinBias)*this.importance((x-crop.x)/crop.width, (y-crop.y)/crop.height);
259-
//if(Number.isNaN(score.detail)) debugger;
260-
//if(Number.isNaN(score.saturation)) debugger;
261-
//if(Number.isNaN(score.skin)) debugger;
262-
//if(Number.isNaN(score.total)) debugger;
263-
}
246+
//_score: function(output, crop){
247+
//var score = {
248+
//detail: 0,
249+
//saturation: 0,
250+
//skin: 0,
251+
//total: 0
252+
//},
253+
//options = this.options,
254+
//downSample = options.scoreDownSample,
255+
//invDownSample = 1/downSample;
256+
//for(var y = crop.y; y < crop.y+crop.height; y+=downSample) {
257+
//for(var x = crop.x; x < crop.x+crop.width; x+=downSample) {
258+
//var p = (~~(y*invDownSample)*output.width+~~(x*invDownSample))*4;
259+
//score.detail += output.data[p+1]/255*this.importance((x-crop.x)/crop.width, (y-crop.y)/crop.height);
260+
//score.saturation += output.data[p+2]/255*this.importance((x-crop.x)/crop.width, (y-crop.y)/crop.height);
261+
//score.skin += output.data[p]/255*(output.data[p+1]/255+options.skinBias)*this.importance((x-crop.x)/crop.width, (y-crop.y)/crop.height);
262+
////if(Number.isNaN(score.detail)) debugger;
263+
////if(Number.isNaN(score.saturation)) debugger;
264+
////if(Number.isNaN(score.skin)) debugger;
265+
////if(Number.isNaN(score.total)) debugger;
266+
//}
264267

265-
}
266-
score.total = (score.detail*options.detailWeight + score.skin*options.skinWeight + score.saturation*options.saturationWeight)/crop.width/crop.height;
267-
//console.log(score);
268-
return score;
269-
},
268+
//}
269+
//score.total = (score.detail*options.detailWeight + score.skin*options.skinWeight + score.saturation*options.saturationWeight)/crop.width/crop.height;
270+
////console.log(score);
271+
//return score;
272+
//},
270273

271274
importance: function(crop, x, y){
272275
var options = this.options;

0 commit comments

Comments
 (0)