python 对图片进行操作

Pillow是一个强大的图像处理库,它提供了许多用于打开、操作和保存图像的功能。
Image模块:
Image模块提供了用于打开、创建、编辑和保存图像的基本功能。可以使用Image.open()函数来打开图像文件,或者使用Image.new()函数来创建新的图像,还可以对图像进行各种操作,如缩放、裁剪、旋转、调整亮度、对比度等。
ImageDraw模块:
ImageDraw模块提供了一组用于在图像上绘制图形和文本的函数,可以使用ImageDraw对象来绘制线条、矩形、椭圆、多边形,甚至文本。这对于在图像上添加注释、标记或创建自定义图形非常有用。

示例一:获取图片中某个坐标的位置并在图片上画一个长宽5px的方形。
代码实现

from PIL import Image, ImageDraw# 打开图片并确保它在RGB模式下
image_path = 'C:/Users/admin/Desktop/1.png'  # 替换为你的图片路径
image = Image.open(image_path).convert('RGB')# 设定要绘制正方形的起始位置 (x, y)
x, y = 214, 108  # 替换为你想要绘制正方形的起始像素位置# 正方形的边长
side_length = 5# 创建一个可以在图像上绘制的对象
draw = ImageDraw.Draw(image)# 计算正方形的四个角点的坐标
top_left = (x, y)
top_right = (x + side_length, y)
bottom_right = (x + side_length, y + side_length)
bottom_left = (x, y + side_length)# 使用矩形方法绘制正方形(实际上是一个矩形,但边长相等所以看起来是正方形)
# fill参数设置为红色 (255, 0, 0)
draw.rectangle([top_left, bottom_right], fill=(255, 0, 0))
# 保存修改后的图片
new_image_path = 'modified_image.jpg'  # 替换为你想要保存的图片路径
image.save(new_image_path)

原图片:
在这里插入图片描述
效果图:
在这里插入图片描述
示例二:对图片进行裁剪
实现代码:

# 打开图片并确保它在RGB模式下
image_path = 'C:/Users/admin/Desktop/1.png'  # 替换为你的图片路径
image = Image.open(image_path).convert('RGB')# 从图片的下半部分裁剪40px
crop_height = 40  # 裁剪的高度
height = image.height
new_height = height - crop_height  # 新的高度# 裁剪图片
cropped_image = image.crop((0, 0, image.width, new_height))# 保存修改后的图片
new_image_path = 'modified_image_cropped.jpg'  # 替换为你想要保存的图片路径
cropped_image.save(new_image_path)
image = Image.open(new_image_path).convert('RGB')

原图片:
在这里插入图片描述
效果图:
在这里插入图片描述

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

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

相关文章

深度剖析Gateway在微服务治理中的关键角色

目录 一、多层网关 二、Gateway 路由规则 2.1 路由 2.2 谓词 2.3 过滤器 三、路由声明规则 3.1 谓词 寻址谓词 请求参数谓词 时间谓词 自定义谓词 一、多层网关 首先我们先了解下一个请求是如何到达服务端并得到相应的。过程如图所示: 首先网址解析的第一步是 DN…

设计模式学习笔记 - 开源实战四(中):剖析Spring框架中用来支持扩展的设计模式

概述 上篇文章,学习了 Spring 框架背后蕴含的设计思想,比如约定优于配置、低侵入松耦合、模块化轻量级等等。这些设计思想可以借鉴到其他框架开发中,在大的设计层面提高框架的代码质量。 除了上篇文章降到的设计思想,实际上&…

力扣704/35/34:二分查找

考虑到线性查找法的时间复杂度较高(O(n)), 我们可以选择使用二分查找算法. 二分查找算法只适用于有序数组(线性查找不需要满足该前提), 其时间复杂度为O(logn), 我们可以选择两种方式来完成二分查找算法. 要求 : 给定一个有序整形数组, 在该数组中, 找到目标值target, 如果找…

CSS特效---环形进度条

1、演示 2、一切尽在代码中 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"w…

炉管设备的内部构造详解

知识星球&#xff08;星球名&#xff1a;芯片制造与封测社区&#xff09;里的学员问&#xff1a;炉管设备&#xff08;立式&#xff09;的内部构造是怎样的&#xff1f; 如上图&#xff0c;是一个典型的&#xff1a; 上半部&#xff1a; Heating Element&#xff08;加热线圈…

树莓派使用总结

手上拿到了一块Raspberry Pi 4B板子。研究一下怎么用。 安装系统 直接到官网【Raspberry Pi 】下载在线安装助手 安装好后&#xff0c;打开软件&#xff0c;选择好板子型号、系统、TF卡&#xff0c;一路下一步就行。 树莓派接口 直接查看官方的资料【Raspberry Pi hardwar…

yolov8下的训练指标解析

目录 一:训练指标 二:训练结果 一:训练指标 model = YOLO(yolov8n.pt) results = model.train(data="lvluo/lvluo.yaml", epochs=50) 这里的model.train中的参数data,epochs都是训练模型的相关参数,下面我们讲解下常用的参数指标。 1:data: 数据文件路…

实用电路图轻松掌握,一通百通 | 百能云芯

通过以下各种各样的实用电路&#xff0c;大家可以了解元器件的结构、特性、动作原理及电路的基本控制方式&#xff0c;掌握一些控制规律&#xff0c;这样的话&#xff0c;在日后的电路识图中就能融会贯通&#xff0c;一通百通。 文章中的电路图有难有易&#xff0c;有些图现在…

js将后端返回的blob请求下载

首先在请求里加上responseType: blob http({url: ,method: post,headers: {Content-Type: application/json},responseType: blob,data: saveObj })然后再返参里下载 http({url: ,method: post,headers: {Content-Type: application/json},responseType: blob,data: saveObj}…

贪吃蛇项目实战——学习详解

前言:贪吃蛇是一个经典的游戏&#xff0c; 本节将使用c语言实现一个简易的的贪吃蛇小游戏。 本节内容适合已经学完c语言还有数据结构链表的友友们。 我们要实现的贪吃蛇是在控制台进行游戏的。 它运行起来是这样的&#xff1a; 贪吃蛇 那么&#xff0c; 为了实现这个小游戏。 我…

YOLO8实战:行人跌倒检测系统

yolo8行人跌倒检测系统 前言 随着科技的不断进步&#xff0c;人工智能和深度学习技术已广泛应用于各行各业&#xff0c;尤其是在人身安全检测方面。传统的跌倒检测方法依赖于人工观察&#xff0c;但这种方法不仅耗时耗力&#xff0c;而且容易因人为因素导致误判或漏判。因此&a…

叉车4G无线视频监控管理解决方案:提升效率,保障安全

在现代物流行业中&#xff0c;叉车被广泛应用于仓储和物流领域&#xff0c;成为提升效率和降低成本的重要工具。然而&#xff0c;叉车作为重要的运输设备&#xff0c;其安全性和管理效率也备受关注。针对这一问题&#xff0c;叉车4G无线视频监控管理解决方案应运而生。 叉车是仓…

C++从零开始websevere服务器从搭建到上线|使用华为云服务器进行项目部署

文章目录 公网IP和私有IP地址公网IP私有IP地址为什么我们需要两个IP地址呢 云服务器设置防火墙配置基础配置云服务器防火墙配置云服务器安全组 总结 问题背景 关于使用华为云服务器进行项目部署&#xff0c;25届C秋招选手&#xff0c;刚写完一个websever项目&#xff0c;想着部…

Thinkphp命令行创建repository和transform层扩展包

前言 由于官方推荐的MVC架构在项目功能比较多的时候会导致controller层非常臃肿&#xff0c;不容易将代码复用&#xff0c;难以维护。所以现在很多程序员都喜欢将controller层拆分为controller、service、repository、model这几层甚至更多层次的目录进行开发&#xff0c;更容易…

【免费题库】华为OD机试 - 查找接口成功率最优时间段(Java JS Python C C++)

须知 哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持 文章目录 须知题目描述输入描述输出描述用例解题思路:Java代码:JS代码:Python代码:C代码:C++代码:题目描述 服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段…

重温javascript --(二)函数

函数 一、定义 声明式 functon fn(){}表达式var fn function(){}(函数表达式一般指 匿名函数) 二、参数&#xff08;形参&#xff0c;实参&#xff09; arguments 类数组对象 表示函数的实参集合 arguments.callee—指向当前执行的函数 arguments.length—指向传递给当前函…

TypeScript学习笔记7-枚举

在 TypeScript 中&#xff0c;枚举&#xff08;Enum&#xff09;是一种数据类型&#xff0c;用于定义一组具名的常量值。 枚举可以帮助开发人员在代码中使用可读性更强的符号来表示固定的数值或状态。 枚举的定义类似于对象字面量&#xff0c;其中包含一组键值对&#xff0c;键…

工厂方法模式设计实验

【实验内容】 楚锋软件公司欲开发一个系统运行日志记录器&#xff08;Logger&#xff09;。该记录器可以通过多种途径保存系统的运行日志&#xff1a;例如通过文件记录或数据库记录&#xff0c;用户可以通过修改配置文件灵活地更换日志记录方式。在设计各类日志记录器时&#…

【智能算法】回溯搜索算法(BSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2013年&#xff0c;P Civicioglu等人受到当前种群与历史种群之间的差分向量的引导启发&#xff0c;提出了回溯搜索算法&#xff08;Backtracking Search Algorithm, BSA&#xff09;。 2.算法原理…

刷题训练之二分查找

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握二分查找算法 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷题…