gpt4 book ai didi

java - 如何将 TIFF 图像文件转换为 Android 位图

转载 作者:行者123 更新时间:2023-12-01 11:45:57 24 4
gpt4 key购买 nike

我想将 SD 卡上的图像转换为位图。我正在使用下面的代码

String filepath = "/storage/emulated/0/Download/sample2.tif";
Bitmap bm = BitmapFactory.decodeFile(filepath);

此代码适用于扩展名为 .jpg 或 .png 的文件,但不适用于 .tif 或 .tiff。对于 TIFF 文件,bm 变为 null,没有异常(exception),所有文件路径均有效。

Android BitmapFactory 在解码 TIFF 图像方面是否有任何限制?

还尝试了decodeByteArray和decodeStream,看起来对我来说有限制。我能够将 TIFF 图像文件读取为 byte [],但将 byte[] 或文件输入流转换为位图则返回 null

请告诉我将 TIFF 图像文件转换为位图的任何其他方法。

最佳答案

正如 VERT9x 所说,Android 不支持 TIFF 文件。但您可以使用 native Android 库来来回转换它们,例如 https://github.com/puelocesar/android-lib-magick 。这是将 jpg 转换为 tif 的示例代码。希望这会有所帮助。

MagickImage Image = new MagickImage(new ImageInfo(IMAGE_PATH));
// Image = Image.scaleImage(800, 800);
Image.setImageFormat("tif");
Image.setFileName(str);
ImageInfo localImageInfo = new ImageInfo(str);
localImageInfo.setMagick("tif");
Image.writeImage(localImageInfo);
// store as tif
byte[] blob = Image.imageToBlob(localImageInfo);
FileOutputStream localFileOutputStream = new FileOutputStream(str);
localFileOutputStream.write(blob);
localFileOutputStream.close();

关于java - 如何将 TIFF 图像文件转换为 Android 位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29124616/

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