A distance of '1' is the maximum distance in the color space e.g. from 0, 0, 0 to 255, 255, 255 in RGB color space.
The only difference between ImagickPixel::isSimilar and ImagickPixel::isPixelSimilar is that isSimilar needs to be scaled by the quantum value.
Color 1 | Color 2 | Test distance * 255 | Is within distance |
---|---|---|---|
rgb(245, 0, 0) | rgb(255, 0, 0) | 5.1961524227066 | no |
rgb(245, 0, 0) | rgb(255, 0, 0) | 5.7735026918963 | yes |
rgb(0, 0, 0) | rgb(7, 7, 0) | 5.1961524227066 | no |
rgb(0, 0, 0) | rgb(7, 7, 0) | 5.7735026918963 | yes |
rgba(0, 0, 0, 1) | rgba(7, 7, 0, 1) | 5.1961524227066 | no |
rgba(0, 0, 0, 1) | rgba(7, 7, 0, 1) | 5.7735026918963 | yes |
rgb(128, 128, 128) | rgb(128, 128, 120) | 4.0414518843274 | no |
rgb(128, 128, 128) | rgb(128, 128, 120) | 4.618802153517 | yes |
rgb(0, 0, 0) | rgb(255, 255, 255) | 254.9 | no |
rgb(0, 0, 0) | rgb(255, 255, 255) | 255 | yes |
rgb(255, 0, 0) | rgb(0, 255, 255) | 254.9 | no |
rgb(255, 0, 0) | rgb(0, 255, 255) | 255 | yes |
black | rgba(0, 0, 0) | 0 | yes |
black | rgba(10, 0, 0, 1.0) | 5.7735026918963 | yes |
A distance of '1' is the maximum distance in the color space e.g. from 0, 0, 0 to 255, 255, 255 in RGB color space.
The only difference between ImagickPixel::isSimilar and ImagickPixel::isPixelSimilar is that isSimilar needs to be scaled by the quantum value.
color | ImagickPixel | The ImagickPixel object to compare this object against. |
fuzz | float | The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732). |
// The tests below are written with the maximum distance expressed as 255 // so we need to scale them by the square root of 3 - the diagonal length // of a unit cube. $root3 = 1.732050807568877; $tests = array( ['rgb(245, 0, 0)', 'rgb(255, 0, 0)', 9 / $root3, false,], ['rgb(245, 0, 0)', 'rgb(255, 0, 0)', 10 / $root3, true,], ['rgb(0, 0, 0)', 'rgb(7, 7, 0)', 9 / $root3, false,], ['rgb(0, 0, 0)', 'rgb(7, 7, 0)', 10 / $root3, true,], ['rgba(0, 0, 0, 1)', 'rgba(7, 7, 0, 1)', 9 / $root3, false,], ['rgba(0, 0, 0, 1)', 'rgba(7, 7, 0, 1)', 10 / $root3, true,], ['rgb(128, 128, 128)', 'rgb(128, 128, 120)', 7 / $root3, false,], ['rgb(128, 128, 128)', 'rgb(128, 128, 120)', 8 / $root3, true,], ['rgb(0, 0, 0)', 'rgb(255, 255, 255)', 254.9, false,], ['rgb(0, 0, 0)', 'rgb(255, 255, 255)', 255, true,], ['rgb(255, 0, 0)', 'rgb(0, 255, 255)', 254.9, false,], ['rgb(255, 0, 0)', 'rgb(0, 255, 255)', 255, true,], ['black', 'rgba(0, 0, 0)', 0.0, true], ['black', 'rgba(10, 0, 0, 1.0)', 10.0 / $root3, true],); $output = "
Color 1 | Color 2 | Test distance * 255 | Is within distance |
---|---|---|---|
%s | %s | %s | %s |