@@ -221,10 +221,13 @@ SmartCrop.prototype = {
221
221
options = this . options ,
222
222
od = output . data ,
223
223
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 ,
228
231
importance = this . importance ( crop , x , y ) ;
229
232
score . skin += od [ p ] / 255 * ( od [ p + 1 ] / 255 + options . skinBias ) * importance ;
230
233
score . detail += od [ p + 1 ] / 255 * importance ;
@@ -240,33 +243,33 @@ SmartCrop.prototype = {
240
243
//console.log(score);
241
244
return score ;
242
245
} ,
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
+ // }
264
267
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
+ // },
270
273
271
274
importance : function ( crop , x , y ) {
272
275
var options = this . options ;
0 commit comments