2013-06-26 4 views
1

많은 .gif 파일을 서버에서 다운로드하고 있으며 캔버스에서 그릴 때 작동하지 않습니다. 필자는 gif에서 비트 맵을 생성하고 Options 클래스를 사용하여 불변으로 설정하고 새로운 파일을 만들고 이미지를 png로 저장하려고 시도했지만 그 중 하나는 작동하지 않는 것 같습니다. 누군가가 GIF를 PNG로 변환하는 좋은 간단한 방법을 가지고 있습니까? 지금까지 시도해 보았습니다.안드로이드 - .gif를 .png로 변환하는 가장 좋은 방법

Bitmap b = BitmapFactory.decodeFile(mediaStorageDir.getAbsolutePath() + "/" +  
cr.getString(cr.getColumnIndex(gh.Zone_ZoneName))+".gif"); 
          OutputStream stream = null; 

File f = new File(mediaStorageDir.getAbsolutePath() + "/" + 
cr.getString(cr.getColumnIndex(gh.Zone_ZoneName))+".png"); 

if(f.createNewFile()){ 
    System.out.println("PNG CREATED "+f.getAbsolutePath()); 
}else{ 
System.out.println("PNG NOT CREATED "+f.getAbsolutePath()); 
} 
stream = new FileOutputStream(f.getAbsolutePath()); 
b.compress(CompressFormat.PNG, 100, stream); 
stream.close(); 

하지만이 방법은 효과가없는 것 같습니다. 나는 심지어 system.out.println 호출을 보지도 못했고 GIF 바로 위에 저장되기 때문에 코드가 실행되고 있음을 알았다.

+1

LogCat에서 예외/오류/경고가 표시됩니까? – Raptor

+0

아무 것도 아무것도 작동하지 않습니다. 모든 것이 잘 돌아갑니다. 비트 맵을 회전시키지 않습니다. Ive를 gif에서 PNG로 만듭니다. –

+0

또한 캔버스에서 그리기도 할 수 없습니다. –

답변

0

나는 내 문제를 파악했습니다. 새로 생성 된 파일에 시스템 잠금을 설정해 PNG를 만들 때 액세스하려고했습니다. 내가 다른 곳으로 전화를 옮겨 PNG를 만들었다면 제대로 작동했다.

관련 문제