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();

もちろん、すべてのデータが確実にフラッシュされるように、出力ストリームを閉じる必要があります。

もう 1 つのことは、エンコードされた PNG 画像ではなく生の ARGB データを保存しているため、.png 拡張子が一部の画像ビューアーを混乱させる可能性があることです。おそらく.bmpの方が良いでしょう。

于 2013-08-15T11:11:45.617 に答える