2013-08-06 64 views
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]); 
} 

回答

0

但你将像素数据写入(内存中)ByteArrayOutputStream,而不是文件流。不应该有像

DataOutputStream dos = fileCon.openDataOutputStream();

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

另一件事是你保存原始ARGB数据,而不是编码PNG图像,所以.png扩展名可能会混淆一些图像查看器。也许.bmp会更好。