0

我现在进入一个 J2ME 项目,我需要选择一个图像并将这个图像写入一个特定的文件夹,比如存储卡中的某个文件夹,并带有所需的文件名。我能够选择图像并显示它,但是在尝试保存它时遇到了麻烦。当我尝试保存时,会创建一个图像文件,但其大小为 0.0 kb,当我单击图像时,它显示“不支持文件格式”

这是我的代码

fileCon =  (FileConnection)Connector.open(path+"Contacts/contactImages/"+FIRST_NAME+".png",Connector.READ_WRITE);   
if(!fileCon.exists())
 {
     fileCon.create();
 }

int h = contactImage.getHeight();
int w = contactImage.getWidth();

int[] size = new int[w*h];
contactImage.getRGB(size, 0, w, 0, 0, w, h);

ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);

for (int i = 0; i < size.length; i++) 
 {
     dos.writeInt(size[i]);
 }
4

1 回答 1

0

但是您正在将像素数据写入(内存中)ByteArrayOutputStream,而不是文件流。不应该有类似的东西

DataOutputStream dos = fileCon.openDataOutputStream();

当然,应该关闭输出流以确保刷新所有数据。

另一件事是您保存的是原始 ARGB 数据而不是编码的 PNG 图像,因此 .png 扩展名可能会使一些图像查看器感到困惑。也许 .bmp 会更好。

于 2013-08-15T11:11:45.617 回答