Java me 写入图像时出现的问题

Java me 写入图像时出现的问题,java-me,Java Me,我现在正在进入一个J2ME项目,在那里我需要选择一个图像并将这个图像写入一个特定的文件夹,比如说存储卡中的某个地方,并使用所需的文件名。我能够选择图像并显示它,但当试图保存它时,我遇到了麻烦。当我尝试保存时,会创建一个图像文件,但其大小为0.0 kb,当我单击图像时,它会显示“不支持文件格式” 这是我的密码 fileCon = (FileConnection)Connector.open(path+"Contacts/contactImages/"+FIRST_NAME+".png",Conn

我现在正在进入一个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]);
 }
fileCon=(FileConnection)Connector.open(path+“Contacts/contactImages/”+FIRST_NAME+“.png”,Connector.READ_WRITE);
如果(!fileCon.exists())
{
create();
}
int h=contactImage.getHeight();
int w=contactImage.getWidth();
int[]大小=新int[w*h];
getRGB(大小,0,宽,0,0,宽,高);
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
DataOutputStream dos=新的DataOutputStream(BAS);
对于(int i=0;i
但是您正在通过tearrayoutputstream将像素数据写入(内存中),而不是文件流。难道不应该有这样的事情吗

DataOutputStream dos=fileCon.openDataOutputStream()

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

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