Lines 252-264
static bool compare_pixels(guint32 check, guint32 orig, guint32 merged_orig_pixe
Link Here
|
252 |
|
252 |
|
253 |
switch (method) { |
253 |
switch (method) { |
254 |
case FLOOD_CHANNELS_ALPHA: |
254 |
case FLOOD_CHANNELS_ALPHA: |
255 |
return abs(static_cast<int>(ac) - ao) <= threshold; |
255 |
return abs(static_cast<int>((ac) - ao)) <= threshold; |
256 |
case FLOOD_CHANNELS_R: |
256 |
case FLOOD_CHANNELS_R: |
257 |
return abs(static_cast<int>(ac ? unpremul_alpha(rc, ac) : 0) - (ao ? unpremul_alpha(ro, ao) : 0)) <= threshold; |
257 |
return abs(static_cast<int>((ac ? unpremul_alpha(rc, ac) : 0) - (ao ? unpremul_alpha(ro, ao) : 0))) <= threshold; |
258 |
case FLOOD_CHANNELS_G: |
258 |
case FLOOD_CHANNELS_G: |
259 |
return abs(static_cast<int>(ac ? unpremul_alpha(gc, ac) : 0) - (ao ? unpremul_alpha(go, ao) : 0)) <= threshold; |
259 |
return abs(static_cast<int>((ac ? unpremul_alpha(gc, ac) : 0) - (ao ? unpremul_alpha(go, ao) : 0))) <= threshold; |
260 |
case FLOOD_CHANNELS_B: |
260 |
case FLOOD_CHANNELS_B: |
261 |
return abs(static_cast<int>(ac ? unpremul_alpha(bc, ac) : 0) - (ao ? unpremul_alpha(bo, ao) : 0)) <= threshold; |
261 |
return abs(static_cast<int>((ac ? unpremul_alpha(bc, ac) : 0) - (ao ? unpremul_alpha(bo, ao) : 0))) <= threshold; |
262 |
case FLOOD_CHANNELS_RGB: |
262 |
case FLOOD_CHANNELS_RGB: |
263 |
guint32 amc, rmc, bmc, gmc; |
263 |
guint32 amc, rmc, bmc, gmc; |
264 |
//amc = 255*255 - (255-ac)*(255-ad); amc = (amc + 127) / 255; |
264 |
//amc = 255*255 - (255-ac)*(255-ad); amc = (amc + 127) / 255; |
Lines 268-276
static bool compare_pixels(guint32 check, guint32 orig, guint32 merged_orig_pixe
Link Here
|
268 |
gmc = (255-ac)*gd + 255*gc; gmc = (gmc + 127) / 255; |
268 |
gmc = (255-ac)*gd + 255*gc; gmc = (gmc + 127) / 255; |
269 |
bmc = (255-ac)*bd + 255*bc; bmc = (bmc + 127) / 255; |
269 |
bmc = (255-ac)*bd + 255*bc; bmc = (bmc + 127) / 255; |
270 |
|
270 |
|
271 |
diff += abs(static_cast<int>(amc ? unpremul_alpha(rmc, amc) : 0) - (amop ? unpremul_alpha(rmop, amop) : 0)); |
271 |
diff += abs(static_cast<int>((amc ? unpremul_alpha(rmc, amc) : 0) - (amop ? unpremul_alpha(rmop, amop) : 0))); |
272 |
diff += abs(static_cast<int>(amc ? unpremul_alpha(gmc, amc) : 0) - (amop ? unpremul_alpha(gmop, amop) : 0)); |
272 |
diff += abs(static_cast<int>((amc ? unpremul_alpha(gmc, amc) : 0) - (amop ? unpremul_alpha(gmop, amop) : 0))); |
273 |
diff += abs(static_cast<int>(amc ? unpremul_alpha(bmc, amc) : 0) - (amop ? unpremul_alpha(bmop, amop) : 0)); |
273 |
diff += abs(static_cast<int>((amc ? unpremul_alpha(bmc, amc) : 0) - (amop ? unpremul_alpha(bmop, amop) : 0))); |
274 |
return ((diff / 3) <= ((threshold * 3) / 4)); |
274 |
return ((diff / 3) <= ((threshold * 3) / 4)); |
275 |
|
275 |
|
276 |
case FLOOD_CHANNELS_H: |
276 |
case FLOOD_CHANNELS_H: |