我尝试将URLImage转换为EncodedImage以缩放它,但它将背景变为黑色。转换工作正常,只有在缩放图像时才会出现问题。在指南中,它说URLImages存在大小限制,但我不明白如何正确扩展它。如果有人可以写一个关于如何将URLImages扩展到任意大小的例子,我将非常感激。
这是我使用的代码
//create the form
Form hi = new Form ("urlimage scaling");
try
{
//create placeholder image
EncodedImage placeholder = EncodedImage.create("/dog.jpg").scaledEncoded(492, 290);
//get image from the web
URLImage urlimg = URLImage.createToStorage(placeholder, "https://australianbananas.com.au/Images/Home/RipenessBlend.png",
"https://australianbananas.com.au/Images/Home/RipenessBlend.png");
//try to convert and scale
EncodedImage scaledImage = EncodedImage.createFromImage(urlimg,false).scaledEncoded(Display.getInstance().getDisplayWidth(), -1);
//display image using a label
Label lbl = new Label();
lbl.setIcon(scaledImage);
hi.add(lbl);
}
catch(Exception e) {System.out.println(""+e);}
hi.show();
答案 0 :(得分:1)
以这种方式扩展URLImage是有问题的,因为URLImage"数据"将是它的占位符图像,直到它完成下载。因此,调用EncodedImage.createFromImage(urlimg, false)
之类的内容只会将URLImage的占位符图像创建为编码图像。
最好在加载URLImage之前获得占位符图像的正确大小,并使用适当的"比例"调用createToStorage()
时的参数,以便将图像正确映射到占位符维度。