2009-03-23 7 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); 

아직 가끔 얻을 파일이 완전하지 않습니다. 픽셀의 마지막 줄은 검은 색이고 일부 프로그램 (포토샵)은이를 열지 않습니다.
누락 된 것이 있습니까? 이 클래스에 파일을 비우고 닫으려면 어떻게해야합니까?

답변

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; 
} 

참고 :

buttonPressed() 방법을 참조하십시오 그것을 saves an image, 그것은 사용을 수행 할 때 다음 코드 :

try 
    { 
    File JavaDoc file = new File JavaDoc(returnedFileName); 
    FileOutputStream JavaDoc out = new FileOutputStream JavaDoc(file); 
    out.write(currentImageRawData); 
    out.flush(); 
    out.close(); 
}