1
我試圖從URL使用URLImage.createToStorage拉圖像。不過,我希望該圖片看起來四捨五入,以便爲圖片添加遮罩。但是,當我運行標籤時只顯示佔位符圖像,而不是url圖像。當我註釋掉將圓角蒙版添加到圖像顯示圖像的代碼時。我的圓形圖像代碼有問題嗎?我使用Display.getInstance()。callSerially()。Codename one rounded URLImage not display
//Where I display the image.
public void setUpProfile(Form f) {
Label imageLabel = findMyImage(f);
Image img = getImageFromRes("myprofile.png");
Image scaled = img.scaledWidth(f.getWidth()/2);
EncodedImage enc = EncodedImage.createFromImage(scaled, false);
Display.getInstance().callSerially(new Runnable() {
@Override
public void run() {
imageLabel.setIcon(getRoundedImage(URLImage.createToStorage(enc,
"profileImage8", me.getPicture(), URLImage.RESIZE_SCALE_TO_FILL)));
f.revalidate();
}
});
findProfNameLabel(f).setText(me.getName());
findProfAgeLabel(f).setText(me.getAge() + " Years old");
findProfPrefLabel(f).setText("Interested in " + me.getPref());
}
public Image getRoundedImage(Image img) {
int w = img.getWidth();
int h = img.getHeight();
Image maskImage = Image.createImage(w, h);
Graphics g = maskImage.getGraphics();
g.setColor(0xffffff);
g.fillArc(0, 0, w, h, 0, 360);
Object mask = maskImage.createMask();
Image ret = img.applyMask(mask);
return ret;
}
setUpProfile()方法在Form的beforeShow中調用。
編輯:我編輯了使用URLImage.createMaskAdapter的工作setUpProfile()方法。並實現圓潤的圖像。
public void setUpProfile(Form f) {
Label imageLabel = findMyImage(f);
Image mask = getImageFromRes("rounded-mask.png");
Image placeholder = getImageFromRes("myprofile.png").scaled(mask.getWidth(), mask.getHeight());
EncodedImage enc = EncodedImage.createFromImage(placeholder.applyMask(mask.createMask()),
false);
System.out.println("SetUpProfile picture " + me.getPicture());
imageLabel.setIcon(URLImage.createToStorage(enc, "profileImage8",
me.getPicture(), URLImage.createMaskAdapter(mask)));
findProfNameLabel(f).setText(me.getName());
findProfAgeLabel(f).setText(me.getAge() + " Years old");
findProfPrefLabel(f).setText("Interested in " + me.getPref());
}
你可以用'URLImage.createMaskAdapter()'這還要快。原始代碼不起作用的原因是掩碼有效地替換了圖像。所以他創建了一個'URLImage',並且在它有機會獲取數據之前,他用新的蒙版圖像替換了它...... –
@ShaiAlmog我在使用URLImage.createMaskAdapter的新代碼中進行了編輯。圖像現在正在出現,但它不是圓形的。它仍然是一個正方形。 – Kyri33
刪除主目錄中的.cn1目錄的內容,然後再試一次 –