Codenameone规模URLImage

时间:2017-04-07 11:17:43

标签: codenameone

我尝试将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();   

1 个答案:

答案 0 :(得分:1)

以这种方式扩展URLImage是有问题的,因为URLImage"数据"将是它的占位符图像,直到它完成下载。因此,调用EncodedImage.createFromImage(urlimg, false)之类的内容只会将URLImage的占位符图像创建为编码图像。

最好在加载URLImage之前获得占位符图像的正确大小,并使用适当的"比例"调用createToStorage()时的参数,以便将图像正确映射到占位符维度。