将 HEIC 格式图像文件转换成 JPEG,BMP 格式

举报
tsinghuazhuoqing 发表于 2022/09/25 06:40:12 2022/09/25
【摘要】 简 介: 本文给出了将 HEIC 格式的文件转换成 BMP,JPEG 的方法。 HEIC 格式的文件,在相同的图像质量下文件大小只有普通JPEG格式的一半,所以现在被广泛应用在便携式拍照设备中存储拍...

简 介: 本文给出了将 HEIC 格式的文件转换成 BMP,JPEG 的方法。 HEIC 格式的文件,在相同的图像质量下文件大小只有普通JPEG格式的一半,所以现在被广泛应用在便携式拍照设备中存储拍摄的文件。这样可以在相同的存储介质下扩大存储图片的容量。

关键词 HEICJPEGBMP

HEIC格式图片
目 录
Contents
背景介绍
Python转换图片
批量转换
总 结

 

01 HEIC格式图片


一、背景介绍

  近期收到 ZF 发送过来的智能车竞赛现场文件,其中包括有后缀为 HEIC 格式的图片。所以需要将其转换成可以进一步编辑的 JPEG,BMP 文件。HEIC 后缀的图片软件在相同的图片质量下,文件的大小只有普通 JPEG 文件的一半左右,所以被广泛应用在便携式拍照设备中用于图片的存储。

▲ 图1.1 不同格式后缀的图片文件

▲ 图1.1 不同格式后缀的图片文件

二、Python转换图片

  在 How to Convert From HEIC to JPG in Python on WIndows 给出了应用 pillow_heif 模块进行转换的例子。

1、安装 pillow_heif

  在应用之前,首先使用 pip 安装 pillow_heif python 模块。

python - m pip install pillow_heif

  经过测试这个过程需要按照好几次,才能够正确吧 pillow_heif 安装在计算机中。

  提示: 在安装的时候,需要将 QuickQ 关闭连接才行。

2、转换 HEIC 图片

(1)转换软件

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2022-09-20
#
# Note:
#============================================================

from headm import *
import PIL
import pillow_heif

fname = r'D:\Temp\heic\IMG_2268.HEIC'

heif_file = pillow_heif.read_heif(fname)
image = Image.frombytes(
    heif_file.mode,
    heif_file.size,
    heif_file.data,
    'raw')

image.save(r'd:\temp\1.bmp', format("bmp"))

printf("\a")

#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

(2)转换结果

  下面图片是利用上述软件转换后的结果图片:

▲ 图1.2.1 转换的结果文件

▲ 图1.2.1 转换的结果文件

  利用 Python 进行转换,转速速度大约为 1 秒钟一副图片。

三、批量转换

1、转换代码

  下面程序是将目录中的所有 HEIC 格式的文件名转换成 BMP 格式的文件。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2022-09-20
#
# Note:
#============================================================

from headm import *
import PIL
import pillow_heif

indir = r'd:\temp\heic'
outdir = r'd:\temp'

infile = os.listdir(indir)

for f in infile:
    if f.find('HEIC') < 0: continue
    fname = os.path.join(indir, f)

    heif_file = pillow_heif.read_heif(fname)
    image = Image.frombytes(
        heif_file.mode,
        heif_file.size,
        heif_file.data,
        'raw')

    outname = os.path.join(outdir, f.split('.')[0] + '.BMP')
    image.save(outname, format("bmp"))
    printf(f)

printf('\a')

#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

2、转换结果

▲ 图1.3.1 转换后的结果

▲ 图1.3.1 转换后的结果

 

  结 ※


  文给出了将 HEIC 格式的文件转换成 BMP,JPEG 的方法。 HEIC 格式的文件,在相同的图像质量下文件大小只有普通JPEG格式的一半,所以现在被广泛应用在便携式拍照设备中存储拍摄的文件。这样可以在相同的存储介质下扩大存储图片的容量。


■ 相关文献链接:

● 相关图表链接:

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/126949113

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。