2009-03-23 12 views
1

私はPNG形式のファイルを保存するには、このクラスswt.graphics.ImageLoaderを使用しています:swt.graphics.ImageLoader.save()がフラッシュされませんでしたか?

ImageLoader loader = new ImageLoader(); 
loader.data = new ImageData[] { m_imgdat }; 
loader.save(selected, SWT.IMAGE_PNG); 

はまだ時々私が手ファイルが不完全です。ピクセルの最後の行は黒で、一部のプログラム(Photoshop)はそれを完全に開くことを拒否します。
紛失しているものがありますか?どのようにしてこのクラスにファイルをフラッシュして閉じるように指示できますか?

答えて

1

原理は正しいですが、あなたはImageDialogようにそれを保存しようとすることはありません:

try 
{ 
    ImageData imageData = new ImageData(new ByteArrayInputStream JavaDoc(this.newImageRawData)); 
    if (imageData.type != this.requiredImageType) 
    { 
     ImageLoader imageLoader = new ImageLoader(); 
     imageLoader.data = new ImageData[] { imageData }; 
     ByteArrayOutputStream JavaDoc baos = new ByteArrayOutputStream JavaDoc(); 
     imageLoader.save(baos, this.requiredImageType); 
     this.newImageRawDataInRequiredFormat = baos.toByteArray(); 
    } 
    else 
    { 
     this.newImageRawDataInRequiredFormat = this.newImageRawData; 
    } 
} 
catch (SWTException swte) 
{ 
    this.newImageRawDataInRequiredFormat = null; 
} 

注:それsaves an image、それは使用しない

はそのbuttonPressed()方法を参照してください。次のコード:

try 
    { 
    File JavaDoc file = new File JavaDoc(returnedFileName); 
    FileOutputStream JavaDoc out = new FileOutputStream JavaDoc(file); 
    out.write(currentImageRawData); 
    out.flush(); 
    out.close(); 
} 
関連する問題