gpt4 book ai didi

java - 如何检测给定的图像文件是否是 Android 中的动画 GIF

转载 作者:太空狗 更新时间:2023-10-29 13:14:53 25 4
gpt4 key购买 nike

正在编写图像编辑器。

我不支持编辑动画 gif,因此当用户选择图像时,如果该图像是动画 gif,我需要显示一条错误消息。

那么给定一个文件路径,我如何区分静态 gif 和动画 gif?

我检查了问题Understand an gif is animated or not in JAVA但它不适用于 Android,因为 ImageIO 类不可用。

注意:我只需要知道是否是动画的,所以我想要最快的方法

最佳答案

下面的代码对我有用:

使用图片http url检查。

URL url = new URL(path);
URLConnection conn = url.openConnection();
InputStream inputStream = conn.getInputStream();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];
int len = 0;

while ((len = inputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}

inputStream.close();
byte[] bytes = outStream.toByteArray();

Movie gif = Movie.decodeByteArray(bytes, 0, bytes.length);
//If the result is true, its a animated GIF
if (gif != null) {
return true;
} else {
return false;
}

或从图库中选择文件进行检查:

try {
//filePath is a String converted from a selected image's URI
File file = new File(filePath);
FileInputStream fileInputStream = new FileInputStream(file);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];
int len = 0;

while ((len = fileInputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}

fileInputStream.close();
byte[] bytes = outStream.toByteArray();

Movie gif = Movie.decodeByteArray(bytes, 0, bytes.length);
//If the result is true, its a animated GIF
if (gif != null) {
type = "Animated";
Log.d("Test", "Animated: " + type);
} else {
type = "notAnimated";
Log.d("Test", "Animated: " + type);
}
} catch (IOException ie) {
ie.printStackTrace();
}

关于java - 如何检测给定的图像文件是否是 Android 中的动画 GIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36060976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com