在 [CodenameOne] 中使用 URLImage 时如何将缓冲图像转换为图像
How to convert Buffered Image to Image while using URLImage in [CodenameOne]
使用以下代码出现 java.lang.ClassCastException: java.awt.image.BufferedImage cannot be cast to com.codename1.ui.Image
错误。我该如何解决这个问题?
EncodedImage encImage = (EncodedImage) fetchResourceFile().getImage("user2.png");
Image profileImage= URLImage.createToStorage(encImage, "Medium_me.jpg", profile.getProfileImageURL(),URLImage.RESIZE_SCALE);
System.out.println("Imaged:" + profileImage.getImage());
findPlayerImageGs(f).setIcon((Image) profileImage.getImage()); //Error Line
findPlayerImageGs(f).repaint();
findPlayerImageGs 是标签。
检查以下修改后的代码,它应该可以工作
EncodedImage encImage = (EncodedImage)
fetchResourceFile().getImage("user2.png");
Image profileImage= URLImage.createToStorage(encImage, "Medium_me.jpg", profile.getProfileImageURL(),URLImage.RESIZE_SCALE);
System.out.println("Imaged:" + profileImage.getImage());
**findPlayerImageGs(f).setIcon(profileImage); //it should work**
findPlayerImageGs(f).repaint();
请注意,您不应操纵 URLImage
并始终添加它 "as is" 否则它可能会像 here 所解释的那样失败。
图像的getImage()
方法returns图像的平台原生版本。作为开发人员,这对您来说几乎没有用,因为平台本机映像在每个平台、JavaSE 中或模拟器映像是通过 AWT BufferedImage
实现的。在 iOS 你会得到一个 long[]
指向保存原生 Objective-C 图像的内存区域。
此方法的存在使本机代码可以访问依赖于平台的句柄。
使用以下代码出现 java.lang.ClassCastException: java.awt.image.BufferedImage cannot be cast to com.codename1.ui.Image
错误。我该如何解决这个问题?
EncodedImage encImage = (EncodedImage) fetchResourceFile().getImage("user2.png");
Image profileImage= URLImage.createToStorage(encImage, "Medium_me.jpg", profile.getProfileImageURL(),URLImage.RESIZE_SCALE);
System.out.println("Imaged:" + profileImage.getImage());
findPlayerImageGs(f).setIcon((Image) profileImage.getImage()); //Error Line
findPlayerImageGs(f).repaint();
findPlayerImageGs 是标签。
检查以下修改后的代码,它应该可以工作
EncodedImage encImage = (EncodedImage)
fetchResourceFile().getImage("user2.png");
Image profileImage= URLImage.createToStorage(encImage, "Medium_me.jpg", profile.getProfileImageURL(),URLImage.RESIZE_SCALE);
System.out.println("Imaged:" + profileImage.getImage());
**findPlayerImageGs(f).setIcon(profileImage); //it should work**
findPlayerImageGs(f).repaint();
请注意,您不应操纵 URLImage
并始终添加它 "as is" 否则它可能会像 here 所解释的那样失败。
图像的getImage()
方法returns图像的平台原生版本。作为开发人员,这对您来说几乎没有用,因为平台本机映像在每个平台、JavaSE 中或模拟器映像是通过 AWT BufferedImage
实现的。在 iOS 你会得到一个 long[]
指向保存原生 Objective-C 图像的内存区域。
此方法的存在使本机代码可以访问依赖于平台的句柄。