Python 基础教程

Python 流程控制

Python 函数

Python 数据类型

Python 文件操作

Python 对象和类

Python 日期和时间

Python 高级知识

Python 参考手册

Python 程序查找图像的大小(分辨率)

Python 实例大全

您将在此示例中学习如何找到jpeg图像的分辨率,而无需使用外部库

要理解此示例,您应该了解以下Python编程主题:

JPEG(发音为“ jay-peg”)表示联合图像专家组。它是用于图像压缩的最广泛使用的压缩技术之一。

大多数文件格式都有标头(头几个字节),这些标头包含有关文件的有用信息。

例如,jpeg标头包含高度、宽度、颜色数量(灰度或RGB)等信息。在这个程序中,我们找到了读取这些标头的jpeg图像的分辨率,而不使用任何外部库。

JPEG图像查找分辨率的源代码

def jpeg_res(filename):
   """"此函数打印传递到其中的jpeg图像文件的分辨率"""

   # 打开图像,以二进制模式读取
   with open(filename,'rb') as img_file:

       # 图片高度(以2个字节为单位)在第164位
       img_file.seek(163)

       # 读取2个字节
       a = img_file.read(2)

       # 计算高度
       height = (a[0] << 8) + a[1]

       # 接下来的两个字节是宽度
       a = img_file.read(2)

       # 计算宽度
       width = (a[0] << 8) + a[1]

   print("图像的分辨率为",width,"x",height)

jpeg_res("img1.jpg")

输出结果

图像的分辨率为 280 x 280

在此程序中,我们以二进制模式打开了图像。 非文本文件必须在此模式下打开。 图像的高度在第164位,然后是图像的宽度。 两者均为2个字节长。

注意,这只适用于JPEG文件交换格式(JFIF)标准。如果您的映像使用其他标准(如EXIF)进行编码,则代码将无法工作。

我们使用按位移位运算符<<将2个字节转换为数字。最后,显示分辨率。

Python 实例大全