1

我从服务器下载了很多 .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 的正上方。

4

1 回答 1

0

我发现了我的问题。当我尝试访问新创建的文件以从中创建 png 时,新创建的文件上有一个系统锁。当我将电话移到其他地方以制作 png 时,它工作正常。

于 2013-06-26T21:59:32.177 回答