Python 自动化之处理图片(一)

图片美化与大小调整



前言

本文主要分为两部分。一是图片的美化吧算是,主要从亮度、对比、色彩饱和度、锐度四个方面进行美化;二是图片的像素大小的调整,大家可以用这个来做一二三等寸的照片。


一、基本结构

代码编写一共分为三部分:

  • 库模块
  • 用户输入模块
  • 图片美化模块
  • 大小调整模块

二、引入库

代码如下:

from PIL import Image, ImageEnhance

很简单,引入一下有关图像的库就行。


三、用户输入模块

整体代码如下:

print(r'请输入文件完整路径(例子:E:\BaiduDownload\你好.png):', end='')
file_path = input()
print(r'请输入模式 1 美化  2 调整大小:', end='')
choice = input()
print(r'请输入新文件保存路径(例子:E:\BaiduDownload):', end='')
file_new_path = input()
if choice == '1':
..................
elif choice == '2':
..................

此处需要用户输入文件的地址、选择模式、新文件保存地址。


四、图片美化模块

整体代码如下:

if choice == '1':
    print(r'请输入数字(float类型)来进行美化亮度:', end='')
    bright = float(input())
    print(r'请输入数字(float类型)来进行美化对比度:', end='')
    contrast = float(input())
    print(r'请输入数字(float类型)来进行美化色彩饱和度:', end='')
    color = float(input())
    print(r'请输入数字(float类型)来进行美化锐化度:', end='')
    sharp = float(input())
    
    # 打开文件
    img = Image.open(file_path)
    # 调整图片的亮度
    img_bright = ImageEnhance.Brightness(img).enhance(bright)
    # 调整图片的对比度
    img_contrast = ImageEnhance.Contrast(img_bright).enhance(contrast)
    # 调整图片的色彩饱和度
    img_color = ImageEnhance.Color(img_contrast).enhance(color)
    # 调整图片的锐度
    img_sharp = ImageEnhance.Sharpness(img_color).enhance(sharp)
    
    # 获取用户输入的文件名,不包括路径
    file_path_name = file_path.split('\\')[-1]  # 使用 \\ 分隔符
    file_base_name = file_path_name.split('.')[0]  # 去掉扩展名
    # 指定保存 .png 文件的完整路径和名称
    output_file_name = f"{
     file_base_name}_美化.png"
    output_path = file_new_path + '\\' + output_file_name
    img_sharp.save(output_path)

一共分为三部分:

  • 首先,提示用户输入照片的四要素(亮度、对比度、色彩饱和度、锐化度)。
  • 其次,程序会根据用户的输入进行照片的处理。
  • 最后,把处理好的照片保存。

五、大小调整模块

整体代码如下:

elif choice == '2':
    print(r'请输入图片的宽度(像素):', end='')
    width = int(input())
    print(r'请输入图片的高度(像素):', end='')
    height = int(input())
    
    # 打开文件
    img = Image.open(file_path)    
    # 调整图片大小 新的宽高值
    new_size = (width, height)
    resized_img = img.resize(new_size, Image.BILINEAR)
    
    # 获取用户输入的文件名,不包括路径
    file_path_name = file_path.split('\\')[-1]  # 使用 \\ 分隔符
    file_base_name = file_path_name.split('.')[0]  # 去掉扩展名
    # 指定保存 .png 文件的完整路径和名称
    output_file_name = f"{
     file_base_name}_大小.png"
    output_path = file_new_path + '\\' + output_file_name
    resized_img.save(output_path)

一共分为三部分:

  • 首先,提示用户输入照片的宽度和高度的像素。
  • 其次,程序会根据用户的输入进行照片的处理。
  • 最后,把处理好的照片保存。

总结

我试了几次,感觉还是用PS比较舒服。。哈哈哈哈哈哈哈哈哈。这个也就图一乐啦,玩玩就行。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 12:10:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 12:10:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 12:10:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 12:10:03       20 阅读

热门阅读

  1. Leetcode724.寻找数组中心下标(通俗易懂版)

    2023-12-15 12:10:03       33 阅读
  2. RocketMQ的架构是什么样的❓

    2023-12-15 12:10:03       49 阅读
  3. LeetCode-232. 用栈实现队列【栈 设计 队列】

    2023-12-15 12:10:03       32 阅读
  4. ARM开发

    ARM开发

    2023-12-15 12:10:03      42 阅读
  5. dapper使用Insert或update时部分字段不映射到数据库

    2023-12-15 12:10:03       37 阅读
  6. Spring Boot 常用注解分类

    2023-12-15 12:10:03       34 阅读
  7. axios跨域问题, 这种情况下 withCredentials 不能为true

    2023-12-15 12:10:03       38 阅读
  8. 746.使用最小花费爬楼梯

    2023-12-15 12:10:03       35 阅读
  9. C# DataTable 总结常用方法

    2023-12-15 12:10:03       33 阅读
  10. C# 德语法语解析浮点数不正确的问题记录

    2023-12-15 12:10:03       41 阅读
  11. 解析Python的Lambda函数:【理解】与【运用】

    2023-12-15 12:10:03       31 阅读