【办公类-37-01】20240304 “一屏一码”二维码图片等比例缩小到4CM

作品展示

c47ae65ad3d64476b0cc3da67a5a34a1.png

 

背景需求:

2024年2月底,区级信息化任务——公共区域电子显示屏排查管理系统的工作,其中一项是:为每个公共区域的电子屏制作二维码,便于系统全面监管,了解屏幕使用播放频率,内容等

 

5fca85c044f645efbcd9997facc029f4.png

1c2c27bee2924749887ee164ea57b067.png

要求是打印图片的宽度大于4CM

083b1311411148cb945cd402c877f3c0.png

我用Photoshop查看了下载二维码图片的长宽尺寸

6135590273d24f9fa3e7a76e367beab3.png

cefcf9bd2ec34ec79818fb065a1c3292.png

那么35CM宽的二维码图片需要打印多大尺寸?

2a2e59fa9d6740c28101d6d7398d7692.png

继续讨论二维码打印后的尺寸大小

dc240734b06446e3909628a1665324a3.png

4537412aa07b4e8f9e662f5b3f068dcb.png

确定需求——二维码的图片宽度从35厘米缩减到4.5厘米,高度根据宽度等比例缩放

9ee66aab1ee14cfba860d51ce6ea5ff2.png

代码制作:

感谢万能的chatgpt(AI对话大师)根据我的需求,写出等比例缩小图片的代码,让我3分钟内搞定了三个文件夹内的二维码图片缩小。

400545516a644562ac7b417dfb71f7b9.png

第一次代码(错误不能用)

 

​​import os
from PIL import Image

# 一级文件夹路径
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\赋码'

# 获取一级文件夹下的所有二级文件夹
subfolders = [f.path for f in os.scandir(folder_path) if f.is_dir()]

# 遍历二级文件夹
for subfolder in subfolders:
    # 获取二级文件夹中的所有jpg图片
    image_files = [f.path for f in os.scandir(subfolder) if f.is_file() and f.name.lower().endswith('.jpg')]
    
    # 遍历图片文件
    for image_file in image_files:
        # 打开图片
        img = Image.open(image_file)
        
        # 获取原始尺寸(像素)
        original_width, original_height = img.size
        print(original_width, original_height)
        # 1000 1347
        
        # 计算等比例缩放后的尺寸
        new_width = 4.5  # 新宽度为4.5CM
        scale_factor = new_width / original_width
        new_height = int(scale_factor * original_height)
        
        # 等比例缩放图片
        resized_img = img.resize((int(new_width), new_height))
        
        # 覆盖原图
        resized_img.save(image_file)

第一次运行后

5a523f0d2d4f4aac8a27b981ff01dd02.png

研究后,我发现,图片原始尺寸是像素,1000和1347,而不是35*47CM,因此4,5在这里不是厘米,而是像素,因此缩小后几乎看不见

625d6d7191d547f2bdd5fffac8e1e663.png

d47910b258044eae9f5696eb1371f3d5.png

于是我又追问了AI对话大师

3f66fea0290e43d19b77543d22d65d32.png

这一次生成的代码,提供了分辨率,和像素厘米转换的代码,实现了我的需求

7733f22016b2491bb1e77d248a9aee7d.png

'''
显示屏一屏一码(图片缩小打印)
作者:AI对话大师、阿夏
时间:20240304

'''


import os
from PIL import Image

# 一级文件夹路径
folder_path =r'C:\Users\jg2yXRZ\OneDrive\桌面\赋码'


# 获取一级文件夹下的所有二级文件夹
subfolders = [f.path for f in os.scandir(folder_path) if f.is_dir()]

# dpi值(根据实际情况修改)
dpi = 72

# 遍历二级文件夹
for subfolder in subfolders:
    # 获取二级文件夹中的所有jpg图片
    image_files = [f.path for f in os.scandir(subfolder) if f.is_file() and f.name.lower().endswith('.jpg')]
    
    # 遍历图片文件
    for image_file in image_files:
        # 打开图片
        img = Image.open(image_file)
        
        # 获取原始尺寸
        original_width, original_height = img.size
        
        # 计算等比例缩放后的尺寸
        new_width_cm = 4.5  # 新宽度为4.5厘米
        new_width_px = int(new_width_cm * dpi / 2.54)  # 厘米转换为像素
        scale_factor = new_width_px / original_width
        new_height_px = int(scale_factor * original_height)
        
        # 等比例缩放图片
        resized_img = img.resize((new_width_px, new_height_px))
        
        # 覆盖原图
        resized_img.save(image_file)

运行后不到3秒就完成了三个文件夹的转换

17d1bb3975f54e8c863b942559b60c0b.png

fa796ab3509b446b9e02d8cb41c5f067.png

4572e13c1bd440b989ce7916ad83f132.png

 

c47ae65ad3d64476b0cc3da67a5a34a1.png

验证尺寸——等比例缩放

95161663035d4441bcacce85def4568d.png

4.5CM小图,放到PS里面查看大小——4.48*6.03CM

af4833327e184d9d914da26d26474782.png2df56e8de64c42589ec465cabe47e37f.png

a257cab7f7794fddb9f661a186642cb8.png

 

因为有了这套简单的宽度转换代码,所以我又做了两款尺寸,4厘米和5厘米备用,如果明天测量大屏幕边缘后,感觉图片太小或太大,可以有这两份替代。

6580843b34e3483fbd91ce02295778bb.png

'''
显示屏一屏一码(图片缩小打印)
作者:AI对话大师、阿夏
时间:20240304

'''


import os
from PIL import Image
n=float(input('宽度大小4.5\n'))

# 一级文件夹路径
folder_path =r'C:\Users\jg2yXRZ\OneDrive\桌面\赋码{}CM'.format(n)


# 获取一级文件夹下的所有二级文件夹
subfolders = [f.path for f in os.scandir(folder_path) if f.is_dir()]

# dpi值(根据实际情况修改)
dpi = 72

# 遍历二级文件夹
for subfolder in subfolders:
    # 获取二级文件夹中的所有jpg图片
    image_files = [f.path for f in os.scandir(subfolder) if f.is_file() and f.name.lower().endswith('.jpg')]
    
    # 遍历图片文件
    for image_file in image_files:
        # 打开图片
        img = Image.open(image_file)
        
        # 获取原始尺寸
        original_width, original_height = img.size
        
        # 计算等比例缩放后的尺寸
        new_width_cm = n  # 新宽度为4.5厘米
        new_width_px = int(new_width_cm * dpi / 2.54)  # 厘米转换为像素
        scale_factor = new_width_px / original_width
        new_height_px = int(scale_factor * original_height)
        
        # 等比例缩放图片
        resized_img = img.resize((new_width_px, new_height_px))
        
        # 覆盖原图
        resized_img.save(image_file)

a47dc954bf204c54a93f9246af5311b5.png

08865f401ae1432f93d3535a3423c9b6.png

b77e28e6e76b4a71a1eefa252eef7668.png0a234aaa882c4922a0a925b538742fe5.png

3587a5e6dbe8408d8bfb1601b4f61e74.png

结语:

chatGPT写Python代码,快捷迅速,可不断优化代码,直到满足自身需求。

有了它,制作代码的速度快了,效率高了,(* ̄︶ ̄)

但自身也更加不会专研Python代码的写法了,能力退化!o(╥﹏╥)o,

 

参考代码

六图备份 大容量图片_image_dirr = r'c:怎么写-CSDN博客文章浏览阅读228次。2.301-00-03 四图转成 720_1280KB 测试最大合并汇总。4.1 KB最大的单图和六图转移(这是6图和单图样式)2.1 四图转成 800_800KB测试最大自动筛选。2.2 四图转成 800_800KB测试最大自动筛选。3.1 3乘2图变小图片最大化。1.1、切割(9*16)1.2、切割(16*9)1.3切割(1*1)_image_dirr = r'c:怎么写https://blog.csdn.net/reasonsummer/article/details/132352436?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132352436%22%2C%22source%22%3A%22reasonsummer%22%7D

 

  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值