codenameone - 在代号一中对图像应用蒙版的解决方法

标签 codenameone

我有一个接受图像并将其四舍五入的函数,如下所示:

    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() 将其转换为常规图像甚至编码图像。

对于此用例,常规图像会更好/更快,因此 toImage() 应该效果最好。

关于codenameone - 在代号一中对图像应用蒙版的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40163082/

相关文章:

codenameone - 将按钮添加到 ToastBar 组件

java - 调用语音输入功能 - CodenameOne 应用程序(iOS 端口)

java - 代号一 : QR code scanner with Zxing

java - CN1 中容器标签和按钮的大小/调整大小

mysql - 将 MySQL 远程连接到代号一

android - 代号 一个带有新 Android 应用程序包的应用程序版本?

codenameone - 测试 CN1 应用程序的建议和经验

java - 错误: cannot find symbol (using replaceAll ) codenameone

ios - 升级到 ios 9.3 后调用 native 代码时应用程序崩溃

java - 手动缓存 Rest 而不检查 ETag 和 Last-Modified 的 header