Android - 将.gif文件转换为.png的最佳方式

时间:2013-06-26 02:47:44

标签: android bitmap png gif

我从服务器下载了很多.gif文件,当我尝试在画布上绘制它时,它永远不会起作用。我已经从GIF创建了位图,并使用Options类将它们设置为不可变,并尝试创建一个新文件并将图像保存为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 个答案:

答案 0 :(得分:0)

我发现了我的问题。当我尝试访问它以从中创建一个png时,新创建的文件上有一个系统锁定。当我把呼叫转移到别处来制作png时,它工作正常。