@Override public int hashCode() { int hash = 0; int tmp; if (hasAlpha) { hash ^= 1; hash <<= 8; } if (isAlphaPremultiplied) { hash ^= 1; hash <<= 8; } tmp = hash >>> 24; hash ^= numColorComponents; hash <<= 8; hash |= tmp; tmp = hash >>> 24; hash ^= transparency; hash <<= 8; hash |= tmp; tmp = hash >>> 24; hash ^= cs.getType(); hash <<= 8; hash |= tmp; tmp = hash >>> 24; hash ^= pixel_bits; hash <<= 8; hash |= tmp; tmp = hash >>> 24; hash ^= transferType; hash <<= 8; hash |= tmp; if (bits != null) { for (int element : bits) { tmp = hash >>> 24; hash ^= element; hash <<= 8; hash |= tmp; } } return hash; }
@Override public boolean equals(Object obj) { if (!(obj instanceof ColorModel)) { return false; } ColorModel cm = (ColorModel) obj; return (pixel_bits == cm.getPixelSize() && transferType == cm.getTransferType() && cs.getType() == cm.getColorSpace().getType() && hasAlpha == cm.hasAlpha() && isAlphaPremultiplied == cm.isAlphaPremultiplied() && transparency == cm.getTransparency() && numColorComponents == cm.getNumColorComponents() && numComponents == cm.getNumComponents() && Arrays.equals(bits, cm.getComponentSize())); }