【问题标题】:Android - Best way to convert .gif to .pngAndroid - 将 .gif 转换为 .png 的最佳方式
【发布时间】:2013-06-23 01:00:07
【问题描述】:

我正在从服务器下载大量 .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 的正上方。

【问题讨论】:

  • LogCat 是否显示异常/错误/警告?
  • 不,一切正常,除了我无法将我创建的位图从 gif 转换为 png
  • 我也无法在从 gif 创建的画布上绘图

标签: android bitmap png gif


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-02-09
    • 2011-05-11
    • 2021-02-01
    • 2012-01-25
    • 2011-06-21
    • 1970-01-01
    • 2023-03-23
    • 2012-09-15
    • 2013-06-05
    相关资源
    最近更新 更多