“一键转换图片:学习如何使用Python调整大小、增强和转换图片!“

news2025/4/7 1:14:41

目录

简介:

源代码:

代码说明:

效果如图所示:

有关其中用到的Pillow模块:


简介:

        在这个世界上,图片处理已经成为了必须掌握的技能之一,无论是为了更好地展示产品,还是为了增强自己的艺术创作。Python的Pillow库为我们提供了强大的图像处理工具,它使得处理图片变得更加容易。

        在这个示例中,我们将学习如何使用Python和Pillow库调整大小、增强和转换图片。我们将演示如何通过单击按钮实现缩小、放大、灰度化和锐化图像。我们将通过一系列简单而易懂的示例,介绍如何使用Python和Pillow库来管理您的图像处理需求。不需要编写复杂的代码,只需要单击按钮就可以实现图像处理,所以即使您是一个Python初学者,也可以轻松掌握这些技巧。

        通过这个示例,您将了解如何使用Python和Pillow库来管理您的图像处理需求,并且在自己的项目中使用这些技术,为自己的产品或创作增添更多的美感。快来学习这些技巧,掌握Python的强大之处吧!

源代码:

from tkinter import *
from PIL import Image, ImageFilter

# 创建窗口
window = Tk()

# 创建按钮并添加到窗口
button1 = Button(window, text='缩小图片')
button1.pack(pady=10)

button2 = Button(window, text='放大图片')
button2.pack(pady=10)

button3 = Button(window, text='灰度化图片')
button3.pack(pady=10)

button4 = Button(window, text='锐化图片')
button4.pack(pady=10)

# 打开原始图片
image = Image.open('original.jpg')

# 定义缩小图片函数
def shrink_image():
    # 缩小图片
    new_size = (image.size[0] // 2, image.size[1] // 2)
    small_image = image.resize(new_size)

    # 保存缩小后的图片
    small_image.save('small.jpg')

# 定义放大图片函数
def enlarge_image():
    # 放大图片
    new_size = (image.size[0] * 2, image.size[1] * 2)
    large_image = image.resize(new_size)

    # 保存放大后的图片
    large_image.save('large.jpg')

# 定义灰度化图片函数
def grayscale_image():
    # 灰度化图片
    gray_image = image.convert('L')

    # 保存灰度化后的图片
    gray_image.save('gray.jpg')

# 定义锐化图片函数
def sharpen_image():
    # 锐化图片
    sharpen_image = image.filter(ImageFilter.SHARPEN)

    # 保存锐化后的图片
    sharpen_image.save('sharpen.jpg')

# 绑定按钮和对应的函数
button1.config(command=shrink_image)
button2.config(command=enlarge_image)
button3.config(command=grayscale_image)
button4.config(command=sharpen_image)

# 运行窗口
window.mainloop()

代码说明:

这段代码会创建一个窗口,并在窗口中添加四个按钮,每个按钮对应一个Pillow库的功能:缩小、放大、灰度化和锐化。点击不同的按钮,会触发相应的函数,并在当前目录下生成相应的处理后的图片文件。注意:在运行代码之前需要替换'xxx.jpg'为你自己的图片路径。

效果如图所示:

 

 

有关其中用到的Pillow模块:

Pillow是一个功能强大的Python图像处理库,除了缩小、放大、灰度、锐化和编码之外,它还提供了许多其他功能。以下是Pillow库的一些其他功能:

  1. 裁剪:使用crop()函数可以裁剪图片。

  2. 调整大小和旋转:除了缩小和放大之外,还可以使用resize()函数来调整图片的大小。还可以使用rotate()函数将图片旋转。

  3. 图片滤镜:Pillow库提供了许多内置的滤镜,可以应用于图像以增强其外观。这些滤镜包括模糊、边缘检测、浮雕、锐化、平滑等等。

  4. 图片处理:Pillow库还提供了一些图像处理功能,例如加水印、添加文字、绘制形状等等。

  5. 图片格式转换:Pillow库支持许多常见的图像格式,包括JPEG、PNG、BMP、GIF等等。可以使用Pillow库将图像从一种格式转换为另一种格式。

  6. 图像增强:Pillow库提供了一些图像增强功能,例如对比度增强、色彩平衡、色调等调整。

  7. 图像绘制:Pillow库支持在图像上绘制线条、矩形、圆形等形状,以及添加文本。

总之,Pillow库是一个非常强大的Python图像处理库,提供了许多有用的功能,可以满足各种不同的图像处理需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/384544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ Primer Plus 第6版 读书笔记(4) 第4章 复合类型

目录 4.1 数组 4.2 字符串 4.3 string 类简介 4.3.4 string 类 I/O 4.4结构简介 4.5 共用体 4.6 枚举 4.7 指针和自由存储空间 4.8 指针、数组和指针算术 4.8.1 程序说明 4.8.2指针小结 4.8.5 自动存储、静态存储和动态存储 4.9 类型组合 4.10 数组的替代…

[算法与数据结构]--贪心算法初识

贪心算法贪心算法的解题过程贪心算法案例1.选择排序2. 平衡字符串3. 买卖股票的最佳时机 II4. 跳跃游戏5 钱币找零6 多机调度问题7.活动选择8. 最多可以参加的会议数目9. 无重叠区间来自算法导论对于这个贪心算法的解释定义贪心算法(又名贪婪算法)故名思意就是一个“贪心”的算…

小程序开发(一)新建/拉取项目,配置远程仓库

一、前期准备工作及工具 1、工具 微信开发者工具、Git 2、准备工作 相关开发工具的安装和配置工作请自行百度 二、新建或拉取远程项目 1、打开微信开发者工具(扫码登录等验证工作自行操作),选择小程序。 2、点击号新建项目,项目名称、目录、模板选…

Git(狂神课堂笔记)

1.首先去git官网下载我们对应的版本Git - Downloading Package (git-scm.com) 2.安装后我们会发现git文件夹里有三个应用程序: Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多 Git CMD:Windows风格的命令行 G…

kafka入门到实战三(单线程实现顺序消费,含demo)

这里需要前面两章的基础,如果没有环境或者看不懂在说什么,就翻一翻前两章。 kafka顺序消费(单线程) 顺序消费 顺序消费:是指消息的产生顺序和消费顺序相同。不管你用的是什么q或者kafka还是sofa,顺序依赖…

启动框架 Anchors接入和分析

参考:https://juejin.cn/post/6844904128443858958https://blog.csdn.net/gqg_guan/article/details/127760207从哪下手整个冷启动过程中,系统方法我们无法进行优化,主要需要优化的是系统暴露出来的一些生命周期方法,从Application的attachBa…

OSCP学习踩过的坑

OSCP终于拿到证,感觉参加考试备考的日子才过去没有多久,想起了那几个月被“虐待”的日子,我想总结下在课程和考试中的犯的错误! 计划 我制定了一个学习计划,计划是学习、练习,然后再学习、练习一些&#…

SpringCloud:服务拆分及远程调用

目录 SpringCloud:服务拆分及远程调用 1、服务拆分 2、远程调用 SpringCloud:服务拆分及远程调用 SpringCloud是目前国内使用最广泛的微服务框架。 官网地址: Spring Cloud SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了…

【10】SCI易中期刊推荐——工程技术-计算机:人工智能(中科院2区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

JAVA开发(Eureka基本原理)

Eureka基本原理。 通过上图我们可以看出,服务提供者在启动的时候需要向注册中心注册自己的信息,而注册中心把向自己注册的服务提供者都保存下来,以便服务消费者获取用来发起请求,而服务消费者需要从注册中心获取服务提供者列表&am…

网络层:IP协议

目录 基本概念 IP报头 IP报文分片 为什么要分片? 如何分片? 分片的报文如何组装? 分片策略如何? 网段划分 IP地址被分成了五类IP: CIDR 特殊的IP地址: 私有IP和公网IP 路由 如何转发数据包&a…

「ABAP」一文带你入门OPEN SQL中的SELECT查询(附超详细案例解析)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

阿里云服务器价格,阿里云轻量应用服务器最新价格表

阿里云服务器从地域上来区分可分为ECS云服务器和轻量应用服务器,从活动内容来区分又可分为秒杀云服务器和新用户特惠云服务器,下面是截止目前,阿里云服务器最新的秒杀及新用户特惠购买价格,以表格形式形式展示出来以供参考。 阿里…

​ICLR 2023 | 图数据分布外检测:从能量模型出发

©PaperWeekly 原创 作者 | 吴齐天单位 | 上海交通大学博士生研究方向 | 机器学习与图深度学习继续探索 Graph OOD 的相关问题,与以往工作不同的是,这篇工作避开了复杂的数学推导和琐碎的数据生成过程,直接从简单有效的判别模型入手研究…

【Spring】掌握 Spring Validation 数据校验

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Spring Validation 数据校验一、什么是 Spring…

RAN-in-the-Cloud:为 5G RAN 提供云经济性

RAN-in-the-Cloud:为 5G RAN 提供云经济性 5G 部署在全球范围内一直在加速。 许多电信运营商已经推出了5G服务并正在快速扩张。 除了电信运营商之外,企业也对使用 5G 建立私有网络产生了浓厚的兴趣,这些私有网络利用了更高的带宽、更低的延迟…

【编程基础之Python】8、Python复合数据类型

【编程基础之Python】8、Python复合数据类型Python复合数据类型列表(List)创建列表访问元素内置方法列表操作元组(Tuple)创建元组访问元素集合(Set)创建集合基本操作其他操作字典(Dictionary&am…

4.ffmpeg命令转码规则、过滤器介绍、手动流map选项

在上章我们学习了ffmpeg命令行帮助以及选项查找 本章我们来深入学习ffmpeg命令转码规则、过滤器介绍、手动流map选项 参考链接: 1.ffmpeg命令行转码流程 ffmpeg命令行转码流程如下图所示: 对应中文则是: 步骤如下所示: ffmpeg调用libavformat库(包含解复用器)来读取输入文件…

Linux -- 查看进程 PS 命令 详解

我们上篇介绍了, Linux 中的进程等概念,那么,在Linux 中如何查看进程呢 ??我们常用到的有两个命令, PS 和 top 两个命令,今天先来介绍下 PS 命令~!PS 命令 :作用 &#x…

C语言拔高知识——指针的进阶(万字大文超详细)

在之前的文章中,我已经讲解过了初阶指针的内容,今天就来讲一讲指针的进阶! 上篇指针地址:保姆式指针讲解,超详细,适合初学者_指针详解_陈大大陈的博客-CSDN博客 目录 1. 字符指针 2. 指针数组 3. 数组指…