HEIC,是iOS 11更新后,iPhone 7及其后硬件,在拍摄照片时的默认图像存储格式
iphone的图库,用jpg拍照保存后内存占比较大,heic格式会微缩不少。
问题来了,电脑不能直接小图预览heic大图用wps可以看
读取图片用到的方法
//javax.imageio.ImageIO;
ImageIO.read(URL url);
ImageIO是javax目录下的,显然是Java自己提供的,支持的类型有限。
特殊格式使用 ImageIO.read 获取的为null
查看ImageIO支持的读取图片格式
System.out.println(Arrays.toString(ImageIO.getReaderFileSuffixes()));
//支持的文件类型:jpg, bmp, gif, png, wbmp, jpeg
TwelveMonkeys
一个开源的Java扩展库,专为Java的javax.imageio API设计,用于增强其图像读取、写入和处理的能力。
TwelveMonkeys增加了对多种非标准或老旧图像格式的原生支持,包括:
- Adobe Photoshop的PSD文件
- Microsoft Office的EMF/WMF矢量图形
- Apple QuickTime的QTIF和MOV/MP4视频帧
- Interchange File Format (IFF)
- 老旧的BMP和RLE编码的PNG

image.png
引入该插件后支持的格式 jpg,tpic,tiff,bmp,gif,tf8,png,btiff,tga,tif,btf,jpeg,wbmp

image.png
唯独缺少对heic的处理,maven中央仓库也没有 imageio-heic的支持
图片转换之heic转jpg(使用ImageMagick)_imagemagick heic转jpg-CSDN博客
ImageMagick7以下不支持heic等图片格式,所以重新安装了ImageMagick7.1版本支持heic格式
sudo apt-get update
sudo apt-get install imagemagick libheif-examples
//使用命令来确认ImageMagick是否支持HEIC格式
convert -version
convert input.heic output.jpg
convert input.heic -resize 800x600 output.jpg