Codename One - 从大图像创建小图像(并存储)

时间:2016-03-26 05:54:40

标签: codenameone

我有一个GUI构建的应用程序,用于管理客户端的配置文件。创建新配置文件时,会拍摄照片。路径(String)与其他信息一起保存在Hashtable中。

当它显示所有客户端的列表时,每个客户端信息都在一个多按钮中设置,每个按钮包含一个客户端的小图片。该图片是每次加载表单时设置的屏蔽图片,加载速度非常慢(当我没有小图片时,加载速度更快)。

enter image description here

问题

我想在拍摄之后立即保存屏蔽的小图片。保存客户端的图片。因此,当我显示客户端列表时,我只需要获取小图像,而不必为所有项目进行屏蔽。这可能吗?

我正在尝试这个:(我的目标是有一个工作" smallPhotoPath")

String bigPhotoPath = Capture.capturePhoto(width, -1);
Image bigPhoto = Image.createImage(bigPhotoPath);
...
//masking image
...
bigPhoto = bigPhoto.applyMask(mask);

String smallPhotoPath = bigPhotoPath+"Small";
Image smallPhoto = bigPhoto.scaled(bigPhoto.getWidth()/8, -1);
java.io.OutputStream os = Storage.getInstance().createOutputStream(smallPhotoPath);
ImageIO.getImageIO().save(smallPhoto, os, ImageIO.FORMAT_PNG, 1);
os.close();

1 个答案:

答案 0 :(得分:2)

经过多次试验,我解决了这个问题。我更改了以下行:

java.io.OutputStream os = Storage.getInstance().createOutputStream(smallPhotoPath);

这个:

OutputStream os = FileSystemStorage.getInstance().openOutputStream(smallPhotoPath);

现在它可以正常工作:)