现在进入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 :(得分:0)
但是您正在将像素数据写入(内存中)ByteArrayOutputStream,而不是文件流。不应该有像
这样的东西DataOutputStream dos = fileCon.openDataOutputStream();
当然应该关闭输出流以确保刷新所有数据。
另一件事是您正在保存原始ARGB数据而不是编码PNG图像,因此.png扩展名可能会混淆某些图像查看器。也许.bmp会更好。