在代号一中对图像应用蒙版的解决方法
Workaround for applying a mask to an image in Codename One
我有一个接受图像并将其四舍五入的函数,如下所示:
public static Image roundImage(Image img) {
int width = img.getWidth();
Image roundMask = Image.createImage(img.getWidth(), img.getHeight(), 0xff000000);
Graphics gr = roundMask.getGraphics();
gr.setColor(0xffffff);
gr.fillArc(0, 0, width, width, 0, 360);
Object mask = roundMask.createMask();
img = img.applyMask(mask);
return img;
}
这对图像非常有效,但如果我将 FontImage
传递给它,该函数会抛出异常:java.lang.RuntimeException: Unsupported Operation
。如何检查屏蔽是否是受支持的操作?我想避免更改应用程序逻辑。
FontImage
是独一无二的 requiresDrawImage
。您可以分别使用 toImage()
或 toEncodedImage()
将其转换为常规图像甚至编码图像。
对于此用例,常规图像将是 better/faster,因此 toImage()
应该效果最好。
我有一个接受图像并将其四舍五入的函数,如下所示:
public static Image roundImage(Image img) {
int width = img.getWidth();
Image roundMask = Image.createImage(img.getWidth(), img.getHeight(), 0xff000000);
Graphics gr = roundMask.getGraphics();
gr.setColor(0xffffff);
gr.fillArc(0, 0, width, width, 0, 360);
Object mask = roundMask.createMask();
img = img.applyMask(mask);
return img;
}
这对图像非常有效,但如果我将 FontImage
传递给它,该函数会抛出异常:java.lang.RuntimeException: Unsupported Operation
。如何检查屏蔽是否是受支持的操作?我想避免更改应用程序逻辑。
FontImage
是独一无二的 requiresDrawImage
。您可以分别使用 toImage()
或 toEncodedImage()
将其转换为常规图像甚至编码图像。
对于此用例,常规图像将是 better/faster,因此 toImage()
应该效果最好。