copyWith method
override
Returns a copy of the pixel
.
Subclasses override this method to provide named parameters for channels.
Example
print(abgr8888.copyWith(0x12345678, red: 0x9A)); // 0x9A345678
print(floatRgba.copyWith(Float32x4(0.1, 0.2, 0.3, 0.4), red: 0.5)); // [0.5, 0.2, 0.3, 0.4]
Implementation
@override
int copyWith(
int pixel, {
int? red,
int? green,
int? blue,
}) {
var output = pixel;
if (red != null) {
output = (output & 0x00FFFF) | ((red & 0xFF) << 16);
}
if (green != null) {
output = (output & 0xFF00FF) | ((green & 0xFF) << 8);
}
if (blue != null) {
output = (output & 0xFFFF00) | (blue & 0xFF);
}
return output;
}