持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第N天,点击查看活动详情 前言 大家好我是辣条哥,最近有小段时间没有更新大家还记得我吧!最近其实在弄一些别的小事情,大家有兴趣的话也可以来围观一下~ 点击查看→→→《五包辣条与Python》←←←希望大家也像在这里大力支持一样的支持辣条哥
废话不多说我们直接进入今天正题,随着现在短视频类越来越火,随之而来的就是大量的视频图像的处理, 不过在辣条眼里编程无所不能,你们觉得呢~接下来我们直接开始进入操作环节
目录 前言 入门了解1.颜色。 入门了解 2. 像素。 用Pillow处理图像
- 读取和显示图像
- 剪裁图像
- 生成缩略图
- 缩放和黏贴图像
- 旋转和翻转
- 操作像素
- 滤镜效果 使用Pillow绘图 总结 入门了解1.颜色。 如果你有使用颜料画画的经历,那么一定知道混合红、黄、蓝三种颜料可以得到其他的颜色,事实上这三种颜色就是美术中的三原色,它们是不能再分解的基本颜色。在计算机中,我们可以将红、绿、蓝三种色光以不同的比例叠加来组合成其他的颜色,因此这三种颜色就是色光三原色。在计算机系统中,我们通常会将一个颜色表示为一个RGB值或RGBA值(其中的A表示Alpha通道,它决定了透过这个图像的像素,也就是透明度)。
名称 RGB值 名称 RGB值 White(白) (255, 255, 255) Red(红) (255, 0, 0) Green(绿) (0, 255, 0) Blue(蓝) (0, 0, 255) Gray(灰) (128, 128, 128) Yellow(黄) (255, 255, 0) Black(黑) (0, 0, 0) Purple(紫) (128, 0, 128) 入门了解 2. 像素。 对于一个由数字序列表示的图像来说,最小的单位就是图像上单一颜色的小方格,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置决定了该图像最终呈现出来的样子,它们是不可分割的单位,我们通常称之为像素(pixel)。每一个图像都包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小,大家如果爱好拍照或者自拍,对像素这个词就不会陌生。
用Pillow处理图像 Pillow是由从著名的Python图像处理库PIL发展出来的一个分支,通过Pillow可以实现图像压缩和图像处理等各种操作。可以使用下面的命令来安装Pillow。
pip install pillow 1 Pillow中最为重要的是Image类,可以通过Image模块的open函数来读取图像并获得Image类型的对象。
-
读取和显示图像 from PIL import Image
读取图像获得Image对象
image = Image.open('guido.jpg')
通过Image对象的format属性获得图像的格式
print(image.format) # JPEG
通过Image对象的size属性获得图像的尺寸
print(image.size) # (500, 750)
通过Image对象的mode属性获取图像的模式
print(image.mode) # RGB
通过Image对象的show方法显示图像
image.show() 1 2 3 4 5 6 7 8 9 10 11 12
-
剪裁图像
通过Image对象的crop方法指定剪裁区域剪裁图像
image.crop((80, 20, 310, 360)).show() 1 2
-
生成缩略图
通过Image对象的thumbnail方法生成指定尺寸的缩略图
image.thumbnail((128, 128)) image.show() 1 2 3
-
缩放和黏贴图像
读取骆昊的照片获得Image对象
luohao_image = Image.open('luohao.png')
读取吉多的照片获得Image对象
guido_image = Image.open('guido.jpg')
从吉多的照片上剪裁出吉多的头
guido_head = guido_image.crop((80, 20, 310, 360)) width, height = guido_head.size
使用Image对象的resize方法修改图像的尺寸
使用Image对象的paste方法将吉多的头粘贴到骆昊的照片上
luohao_image.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40)) luohao_image.show() 1 2 3 4 5 6 7 8 9 10 11
-
旋转和翻转 image = Image.open('guido.jpg')
使用Image对象的rotate方法实现图像的旋转
image.rotate(45).show()
使用Image对象的transpose方法实现图像翻转
Image.FLIP_LEFT_RIGHT - 水平翻转
Image.FLIP_TOP_BOTTOM - 垂直翻转
image.transpose(Image.FLIP_TOP_BOTTOM).show() 1 2 3 4 5 6 7
-
操作像素 for x in range(80, 310): for y in range(20, 360): # 通过Image对象的putpixel方法修改图像指定像素点 image.putpixel((x, y), (128, 128, 128)) image.show() 1 2 3 4 5
-
滤镜效果 from PIL import ImageFilter
使用Image对象的filter方法对图像进行滤镜处理
ImageFilter模块包含了诸多预设的滤镜也可以自定义滤镜
image.filter(ImageFilter.CONTOUR).show() 1 2 3 4 5
使用Pillow绘图 Pillow中有一个名为ImageDraw的模块,该模块的Draw函数会返回一个ImageDraw对象,通过ImageDraw对象的arc、line、rectangle、ellipse、polygon等方法,可以在图像上绘制出圆弧、线条、矩形、椭圆、多边形等形状,也可以通过该对象的text方法在图像上添加文字。
完整的代码如下所示。
import random
from PIL import Image, ImageDraw, ImageFont
def random_color(): """生成随机颜色""" red = random.randint(0, 255) green = random.randint(0, 255) blue = random.randint(0, 255) return red, green, blue
width, height = 800, 600
创建一个800*600的图像,背景色为白色
image = Image.new(mode='RGB', size=(width, height), color=(255, 255, 255))
创建一个ImageDraw对象
drawer = ImageDraw.Draw(image)
通过指定字体和大小获得ImageFont对象
font = ImageFont.truetype('Kongxin.ttf', 32)
通过ImageDraw对象的text方法绘制文字
drawer.text((300, 50), 'Hello, world!', fill=(255, 0, 0), font=font)
通过ImageDraw对象的line方法绘制两条对角直线
drawer.line((0, 0, width, height), fill=(0, 0, 255), width=2) drawer.line((width, 0, 0, height), fill=(0, 0, 255), width=2) xy = width // 2 - 60, height // 2 - 60, width // 2 + 60, height // 2 + 60
通过ImageDraw对象的rectangle方法绘制矩形
drawer.rectangle(xy, outline=(255, 0, 0), width=2)
通过ImageDraw对象的ellipse方法绘制椭圆
for i in range(4): left, top, right, bottom = 150 + i * 120, 220, 310 + i * 120, 380 drawer.ellipse((left, top, right, bottom), outline=random_color(), width=8)
显示图像
image.show()
保存图像
image.save('result.png')
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 注意:上面代码中使用的字体文件需要根据自己准备,可以选择自己喜欢的字体文件并放置在代码目录下。
总结 使用Python语言做开发,除了可以用Pillow来处理图像外,还可以使用更为强大的OpenCV库来完成图形图像的处理,OpenCV(Open Source Computer Vision Library)是一个跨平台的计算机视觉库,可以用来开发实时图像处理、计算机视觉和模式识别程序。在我们的日常工作中,有很多繁琐乏味的任务其实都可以通过Python程序来处理,编程的目的就是让计算机帮助我们解决问题,减少重复乏味的劳动。通过本章节的学习,相信大家已经感受到了使用Python程序绘图P图的乐趣,其实Python能做的事情还远不止这些,继续你的学习吧。
文章知识点与官方知识档案匹配,可进一步学习相关知识 Python入门技能树人工智能计算机视觉144564 人正在系统学习中
源码/资料/实战项目,备注:C站
微信名片
五包辣条! 关注
26
29
0
专栏目录 python如何实现图片压缩 12-17 本工具是通过将图片上传到第三方网站tinypng,进行压缩后下载,覆盖本地图片,tinypng是一个强大的图片处理网站,目前最可靠的无损压缩网站。 代码如下: import requests from idna import unicode from selenium import webdriver import time import os browser = webdriver.Firefox(executable_path='/Users/lyf/Library/Google/geckodriver') def tiny_png(url): # browser.get('http PYTHON中基于OPENCV进行图像压缩 北落师门XY的博客 6481 JPG的图像是有损压缩的,有时场景需要人为地对图像进行压缩。例如:显存溢出时进行cv2.resize操作,减小输入图像尺寸;当图像文件大小太大时,例如超过了上限10M,这时可以通过控制图像质量的方式压缩像素所占字节大小。 基本知识: RGBA: A(Alpha)指图像的透明和半透明度,1位存储时表示透明或不透明,多位存储时表示不同的透明度 位深度: 单个像素单个通道所占比特数,常见为8bit,0-255范围 色深: 单个像素所有通道所占比特数,常见为3*8=24 情况一:cv2.... python实现图片压缩_python如何实现图片压缩_weixin_39... 10-4 本工具是通过将图片上传到第三方网站tinypng,进行压缩后下载,覆盖本地图片,tinypng是一个强大的图片处理网站,目前最可靠的无损压缩网站。 代码如下: importrequests from idna importunicode fromseleniumimport webdriver import time import ... python 图片压缩_宇亲的博客 10-6 defcompress_image_bs4(b64, mb=190, k=0.9): """不改变图片尺寸压缩到指定大小 :param outfile: 压缩文件保存地址 :param mb: 压缩目标,KB :param step: 每次调整的压缩比率 :param quality: 初始压缩比率 :return: 压缩文件地... 使用Python进行压缩与解压缩 Python学习与数据挖掘 1462 来源:Python编程学习圈在日常工作中,除了会涉及到使用Python处理文本文件,有时候还会涉及对压缩文件的处理。通常会涉及到的压缩文件格式有:rar:Windows 环境下用的比较多的压缩,比较著名的GUI工具是winrartar: Linux系统下的打包工具,只打包,不压缩gz:即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩。tgz:即gz。先用tar打包,然后再用gz压缩得到的文件zip:不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低 python不改变图片尺寸压缩到指定大小 野草哥哥的博客 5960 python不改变图片尺寸压缩到指定大小 import base64 import io import os from PIL import Image from PIL import ImageFile # 压缩图片文件 def compress_image(outfile, mb=190, quality=85, k=0.9): """不改变图片尺寸压缩到指定大小 :param outfile: 压缩文件保存地址 :param mb: 压缩目标,KB :param. 教你用Python压缩图片_幽蓝丶流月的博客 9-10 因为太高分辨率会影响我机器学习的效率,我就采用最粗暴的方法,使用PIL库中的Image类,调用resize方法把图片的宽高直接砍一半,但是这里我还是采用了Image.ANTIALIAS滤镜虽然这样会使我图片压缩的效率降低一大截,但也尽最大可能的保留了图片... 使用python对图片进行压缩 进阶中的小白 3679 简单说明 对于图片,强行被定义高和宽会变形,我们希望图片被改变大小后,比例保持不变,完成对图片的压缩。 使用工具 1.pillow : pip install pillow -i pypi.douban.com/simple 2. os : 连接文件,并获取文件夹下的文件名 实现过程 获取picture文件下的相关图片的路径,将路径放到列表里面进行存储 使用Image模块,循环遍历所有路径图片,读取图片的大小。 定义缩小后的图片宽度大小,并根据原图比例计算压缩后图像的高度 使用resize python像素处理_从零开始学Python - 第026课:用Python处理图像 weixin_39731916的博客 104 入门知识颜色。如果你有使用颜料画画的经历,那么一定知道混合红、黄、蓝三种颜料可以得到其他的颜色,事实上这三种颜色就是美术中的三原色,它们是不能再分解的基本颜色。在计算机中,我们可以将红、绿、蓝三种色光以不同的比例叠加来组合成其他的颜色,因此这三种颜色就是色光三原色。在计算机系统中,我们通常会将一个颜色表示为一个RGB值或RGBA值(其中的A表示Alpha通道,它决定了透过这个图像的像素,也就是透明... python图像文件压缩_python中如何实现图片压缩 weixin_39621975的博客 1349 python实现图片压缩的方法:1、导入Image包;2、使用get_size(file)命令获取图片文件的大小;3、使用【os.path.splitext()】方式拼接文件地址;然后压缩文件到指定大小;4、修改图片尺寸即可。一、导入包fromPILimportImageimportos二、获取图片文件的大小defget_size(file):#获取文件大小:KBsize=os.p... winrar 命令行 解压文件 335 1,最简单的压缩命令:winrar a asdf.txt.rar asdf.txt a的意思是进行压缩动作,后面第一个参数是被压缩后的文件名,后缀当然是rar了,最后面 的参数就是要被压缩的文件名 2,最简单的解压缩命令:winrar e asdf.txt.rar e的意思是执行解压缩,解压缩的文件是后面这唯一的参数,但是这个e解压缩是把解出来的 文件释放到当前目录下面,与asdf.t... Python实现图片压缩 Python热爱者的博客 2147 项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩 一:导入包 from PIL import Image import os 二:获取图片文件的大小 def get_size(file): # 获取文件大小:KB size = os.path.getsize(file) return size / 1024 三:拼接输出文件地址 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助, 3行Python 代码实现图片压缩 一行玩python 1262 大家好,我是一行最近因为工作,经常需要在网站提交一些文件和图片但是在提交图片的时候,有些网站总是会提醒我你的图片文件过大,请提交不超过 2 MB大小的图片、想想也正常,不限制图片大小容易被塞爆服务器,但是我手机这1亿像素的照片让我很难办呀而且在线压缩的网站也有上限大小,不然就收费,不然就收费,不然就收费这种简单功能我要是还付费,岂不是丢了pythoner的face了吗?!我把它实现了我也去上线~1原理仔细分析了一下,图片压缩的原理其实很简单简单来说,像素图片过大的原因不就是像素格太多了嘛只要读取所有像素,按 python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片 热门推荐 求真、务实 1万+ python多种方法压缩图片,opencv、PIL、tinypng压缩图片文章目录:1 python+opncv实现图片的压缩2 python+PIL实现图片的压缩3 python+tinypng实现图片的压缩3.1 tinypng介绍3.2 tinypng压缩图片API使用3.2.1 tingypng安装3.2.2 tingypng安装3.2.3 tingypng优缺点:4 python+pngquant实现图片的压缩 1 python+opncv实现图片的压缩 class Compress_img: OpenCV—python 图像压缩 红叶谷 wsp_1138886114的博客 7284 文章目录一、简单的图像压缩二、待续 一、简单的图像压缩 import cv2 ''' ====图像压缩===== CV_INTER_NN - 最近邻插值, CV_INTER_LINEAR - 双线性插值 (缺省使用) CV_INTER_AREA - 使用像素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN ... Python图像分辨率不变,压缩图像到固定大小 wohaiyo的博客 2577 压缩图像 使用 Python压缩图像到固定大小,并保证分辨率不变 关键点: 使用 PIL 库,通过save函数调整图像质量,达到降低存储大小目的。 **img.save(output_name, quality=quality) quality参数: 保存图像的质量,值的范围从1(最差)到95(最佳)。 默认值为75,使用中应尽量避免高于95的值; 100会禁用部分JPEG压缩算法,并导致大文件图像质量几乎没有任何增益。 subsampling参数:子采样,通过实现色度信息的分辨率低于亮度信息来对图像进行 Python图像处理库PIL中图像格式转换(一) qq_37816453的博客 728 在数字图像处理中,针对不同的图像格式有其特定的处理算法。所以,在做图像处理之前,我们需要考虑清楚自己要基于哪种格式的图像进行算法设计及其实现。本文基于这个需求,使用python中的图像处理库PIL来实现不同图像格式的转换。对于彩色图像,不管其图像格式是PNG,还是BMP,或者JPG,在PIL中,使用Image模块的open()函数打开后,返回的图像对象的模式都是“RGB”。而对于灰度图像,不管其图... Python图片压缩处理 最新发布 xff123456_的博客 454 不知道有没有人跟我有一样的烦恼,有时候图片太大了占内存很烦,本来手机内存也就那么点,放一个图片稍微大一点的,都不能放一个成百上千张,这不是很烦嘛。于是,这又让我来灵感了,既然图片给了我难题,那么我就来接受这样的挑战。所以,我决定用python来试试可不可以压缩图片,不是不知道,一试就成功了,那么好的东西怎么能一个人独享呢,当然要分享出来给大家呀~~~ test.py 最后 今天教大家的图片压缩到这里就结束了,喜欢的小伙伴记得点赞收藏。你不支持我,怎么能第一时间找到我,关于这篇文章有不懂的地方可以评论留言哟 【Python】保存不同尺寸(等比缩放)图像的脚本 weixin_44244190的博客 248 由于项目的需求,需要制作不同尺寸图像的脚本,为方便其他同事使用,所以我制作了一个ini文件,方便修改配置参数,如果方便使用,也可以按照个人喜好打包为exe。 一、脚本使用方法: (1)复制下面resize.py代码,安装好代码中所需要的第三方库; (2)在resize.py目录下新建一个记事本,将config.ini中的内容复制进去,并将记事本扩展名修改为.ini; (3)运行resize.py; (4)运行成功后,目录下会出现Image文件夹(用来保存等比缩放后的图像),image.log文件(脚本的运 python 生成图片_利用python收集图片的RGB信息并生成一张左右反转的图片 weixin_39720662的博客 358 图片是由许多不一样的RGB的像素按照一定的顺序排列而成的,利用python相关处理库可以读取到图片的每一个像素的RGB值。图片的RGB按照从左到右,从上到下从新生成一张图片,这张图片就是跟原来的图片是一模一样的,如果想实现图片的反转,那图片的RGB必须从右到左,从上到下从新生成图片!经过测试,已经实现图片的反转,剪切功能。 # 反转图片 def flipPic(self,imgFlip... 使用Python,Matplotlib显示RGB图像 qq_40985985的博客 8146 使用Python,Matplotlib显示RGB格式的 图像1. 效果图2. 源码参考 这篇博客将介绍如何使用matplotlib显示RGB图像。具体是使用matplotlib,pyplot和mpimg来加载和显示图像。 调 ———————————————— 版权声明:本文为CSDN博主「五包辣条!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/AI19970205/…