因此,我必须使用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()));
}
}
}
但是,当执行此操作而不是翻转图像时,我得到的是这样的内容:
原版的:
“翻转”:
谢谢你们的帮助
最佳答案
// 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);
}
那看起来很有希望。
关于java - 在Java中翻转图片时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34023858/