翻转图像
我正在创建一个平铺游戏,我需要翻转图像。使用我的代码它会产生这个错误:
Exception in thread "main" java.lang.IllegalArgumentException: Width (-1) and height (-1) cannot be <= 0
从这一行:
Image newImage = gc.createCompatibleImage(
image.getWidth(null),
image.getHeight(null),
Transparency.BITMASK);
这是我的编码:
public Image getMirrorImage(Image image) {
return getScaledImage(image, -1, 1);
}
private Image getScaledImage(Image image, float x, float y) {
// set up the transform
AffineTransform transform = new AffineTransform();
transform.scale(x, y);
transform.translate(
(x-1) * image.getWidth(null) / 2,
(y-1) * image.getHeight(null) / 2);
// create a transparent (not translucent) image
Image newImage = gc.createCompatibleImage(
image.getWidth(null),
image.getHeight(null),
Transparency.BITMASK);
// draw the transformed image
Graphics2D g = (Graphics2D)newImage.getGraphics();
g.drawImage(image, transform, null);
g.dispose();
return newImage;
}
任何人都可以向我解释我可能需要做些什么或者我如何使它工作?非常感谢
没有找到相关结果
已邀请:
2 个回复
拭十年
可能会返回-1,如果他们还不知道的话。图像处理可以同时进行,当你尝试调用这些方法时它可能仍然存在(甚至在本地它也会执行这个IIRC)。这是我之前用过的代码片段,在尝试访问其宽度和高度之前等待加载图像:
我只是尝试了本地测试,一些小图像的等待时间一般为1ms。这不是真正的任何额外时间,它只是强制你的代码等待最后一个阶段完成以获得宽度和高度。
程琶
那会垂直翻转它。这将水平翻转: