所以我必须使用java.awt.color来翻转一些导入的图像。
这是我在垂直轴上翻转图像的主要方法:
public void execute (Pixmap target)
{
Dimension bounds = target.getSize();
// TODO: mirror target image along vertical middle line by swapping
// each color on right with one on left
for (int x = 0; x < bounds.width; x++) {
for (int y = 0; y < bounds.height; y++) {
// new x position
int newX = bounds.width - x - 1;
// flip along vertical
Color mirrorVert = target.getColor(newX, y);
target.setColor(x, y, new Color (mirrorVert.getRed(),
mirrorVert.getGreen(),
mirrorVert.getBlue()));
}
}
}
然而,当执行此操作而不是图像时,我会得到类似这样的内容:
感谢y&#39;所有人的帮助
答案 0 :(得分:0)
// flip along vertical
Color mirrorVert = target.getColor(newX, y);
target.setColor(x, y, new Color (mirrorVert.getRed(),
mirrorVert.getGreen(),
mirrorVert.getBlue()));
target.setColor(newX, y , new Color(255,255,255));
}
这应该在理论上有效。基本上,我们的想法是将右侧的颜色设置为白色,同时将其复制到左侧。
实际上这不起作用......所以你能做的就是将新颜色保存在一个数组中。然后你就可以把所有东西都变白了,然后把换掉的颜色。
for (int i=0;i<image.getWidth();i++)
for (int j=0;j<image.getHeight();j++)
{
int tmp = image.getRGB(i, j);
image.setRGB(i, j, image.getRGB(i, image.getHeight()-j-1));
image.setRGB(i, image.getHeight()-j-1, tmp);
}
那个看起来很有希望。