MCPcopy Create free account
hub / github.com/benfry/processing4 / blend_difference

Method blend_difference

core/src/processing/core/PImage.java:2525–2542  ·  view source on GitHub ↗

Difference O = ABS(D - S)

(int dst, int src)

Source from the content-addressed store, hash-verified

2523 * O = ABS(D - S)
2524 */
2525 private static int blend_difference(int dst, int src) {
2526 int a = src >>> 24;
2527
2528 int s_a = a + (a >= 0x7F ? 1 : 0);
2529 int d_a = 0x100 - s_a;
2530
2531 int r = (dst & RED_MASK) - (src & RED_MASK);
2532 int b = (dst & BLUE_MASK) - (src & BLUE_MASK);
2533 int g = (dst & GREEN_MASK) - (src & GREEN_MASK);
2534
2535 int rb = (r < 0 ? -r : r) |
2536 (b < 0 ? -b : b);
2537 int gn = (g < 0 ? -g : g);
2538
2539 return min((dst >>> 24) + a, 0xFF) << 24 |
2540 ((dst & RB_MASK) * d_a + rb * s_a) >>> 8 & RB_MASK |
2541 ((dst & GN_MASK) * d_a + gn * s_a) >>> 8 & GN_MASK;
2542 }
2543
2544
2545 /**

Callers 3

blendColorMethod · 0.95
blitResizeBilinearMethod · 0.95
blitResizeNearestMethod · 0.95

Calls 1

minMethod · 0.95

Tested by

no test coverage detected