根据dpi确定文件夹中所有图片属于A系列纸张的哪一种和纸张方向

查看 132|回复 9
作者:zjg121   
[i][Python] 纯文本查看 复制代码import os
from PIL import Image
# 假设的DPI值,用于将像素转换为毫米(1英寸 = 25.4毫米)
DPI = 300
PIXELS_TO_MM = 25.4 / DPI
# 定义标准纸张尺寸(这里以A系列为例,单位:毫米)
standard_paper_sizes = {
    'A0': (841, 1189),
    'A1': (594, 841),
    'A2': (420, 594),
    'A3': (297, 420),
    'A4': (210, 297),
    # ... 可以继续添加其他A系列纸张尺寸
}
# 检查图片尺寸并确定最接近的纸张尺寸及方向
def check_image_size_and_orientation(file_path, dpi=DPI):
    with Image.open(file_path) as img:
        width, height = img.size
        # 将像素尺寸转换为毫米
        width_mm = width * PIXELS_TO_MM
        height_mm = height * PIXELS_TO_MM
        min_dim_mm = min(width_mm, height_mm)
        aspect_ratio = width / height if width > height else height / width
        # 遍历标准纸张尺寸,找到最接近的纸张及方向
    closest_size = None
    closest_aspect_ratio_diff = float('inf')
    orientation = None
    for size_name, (std_width_mm, std_height_mm) in standard_paper_sizes.items():
        std_aspect_ratio = std_width_mm / std_height_mm
        # 计算当前纸张尺寸与图片尺寸的比例
        scale = min_dim_mm / min(std_width_mm, std_height_mm)
        # 检查比例是否在0.8到1.2之间
        if 0.8  std_aspect_ratio else '纵向'
    return closest_size, orientation
# 遍历文件夹中的图片文件
def check_images_in_folder(folder_path, dpi=DPI):
    for filename in os.listdir(folder_path):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif')):
            file_path = os.path.join(folder_path, filename)
            size, orientation = check_image_size_and_orientation(file_path, dpi)
            if size:
                print(f"{file_path} 属于 {size} 纸张,方向是 {orientation}。")
            else:
                print(f"{file_path} 不接近任何标准纸张尺寸。")
            # 使用示例
folder_to_check = "d:/a"  # 替换为你要检查的文件夹路径
check_images_in_folder(folder_to_check)
[i]

纸张, 尺寸

SU150228   

小白还是用exe吧
jy262832680   

可以 学习了
EssenceA1   

这个软件太有意义了,真棒,收藏
fufuok   

学习了. 谢谢分享.
ToDesk01   

厉害厉害,楼主噶早就发表了。实用
zyw_zjk   

感谢分享,支持一下。
magiclyan   

希望出个成品对于整理文件来说这个某些场景超级有用
chz123   

厉害了厉害了
policewang   

不愧是大佬
[i]
您需要登录后才可以回帖 登录 | 立即注册

返回顶部