Python 批量修改图片尺寸为一寸/二寸照
HDUZN

关于批量修改图片尺寸,之前已经写了一篇文章:Python 批量修改图片尺寸。是通过修改分辨率去修改的。

那怎么修改图片尺寸为一寸照、二寸照呢?不能直接照搬网上搜索出来的结果。
比如网上说一寸照大小是 2.5cm*3.5cm 或者 295像素*413像素
二寸照是3.5cm*5.3cm或者413像素*626像素

你如果直接把像素大小按上面的改可能就会有问题。按上面的分辨率修改出来的尺寸打开一看不对。

这里涉及到一个 dpi 分辨率 的概念。

dpi的概念

dots per inch,每英寸点数。

含义搞不那么清楚也没关系,看一张图就了解了。(在Photoshop里看的)

看上面的图片,当图像的大小是:2.5cm*3.5cm时,分辨率(dpi)不同,宽度高度的像素就不同。

网上经常一搜就能看到的一寸二寸照片的宽高度像素比其实是分辨率(dpi=300)的时候。

二寸照dpi=96的时候,像素大概是:133像素*200像素

单张图片修改尺寸和dpi

那我们用Python修改图片尺寸,用PIL库的Image对象的resize修改后,其实就保存的时候设一下dpi就行了。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from PIL import Image
import os

# 单张图片修改尺寸和dpi
def change_pic_size_dpi(picfile, outdir, width, height, dpi_float):
img = Image.open(picfile)

try:
new_img = img.resize((width, height), Image.BILINEAR)
new_img.save(os.path.join(outdir, os.path.basename(picfile)), dpi=(dpi_float,dpi_float))
except Exception as e:
print(e)

change_pic_size_dpi(picfile, outdir, 96, 132, dpi_float=96.0)

其实就第7行,Image.save的时候,添加dpi的参数设置就行了。
注意对应的dpi的宽高度的像素值不同,不能直接照搬网上的。

完整的批量修改的代码看上一篇文章的就行,反正就改了这一句,添加一个 dpi的参数就行,注意dpi用浮点数,带个小数点。代码这里就不贴了。

  • 本文标题:Python 批量修改图片尺寸为一寸/二寸照
  • 本文作者:HDUZN
  • 创建时间:2022-05-30 19:07:07
  • 本文链接:http://hduzn.cn/2022/05/30/Python-批量修改图片尺寸为一寸-二寸照/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论