flipVertical function
Flip the src
image vertically.
Implementation
Image flipVertical(Image src) {
final numFrames = src.numFrames;
for (var i = 0; i < numFrames; ++i) {
final frame = src.frames[i];
final w = frame.width;
final h = frame.height;
final h2 = h ~/ 2;
if (src.hasPalette) {
for (var y = 0, y2 = h - 1; y < h2; ++y, --y2) {
for (var x = 0; x < w; ++x) {
final p1 = frame.getPixel(x, y);
final p2 = frame.getPixel(x, y2);
final t = p1.index;
p1.index = p2.index;
p2.index = t;
}
}
} else {
for (var y = 0, y2 = h - 1; y < h2; ++y, --y2) {
for (var x = 0; x < w; ++x) {
final p1 = frame.getPixel(x, y);
final p2 = frame.getPixel(x, y2);
var t = p1.r;
p1.r = p2.r;
p2.r = t;
t = p1.g;
p1.g = p2.g;
p2.g = t;
t = p1.b;
p1.b = p2.b;
p2.b = t;
t = p1.a;
p1.a = p2.a;
p2.a = t;
}
}
}
}
return src;
}