iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 趣味练习- 修改图片
  • 858
分享到

Python 趣味练习- 修改图片

趣味图片Python 2023-01-31 00:01:06 858人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

无聊在GitHub上看见python的趣味练习题,自己试着做了做https://github.com/Yixiaohan/show-me-the-code 第 0000 题: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微

无聊在GitHub上看见python的趣味练习题,自己试着做了做

https://github.com/Yixiaohan/show-me-the-code


第 0000 题: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 


这个题目主要是练习对Pillow模块的使用,豆子之前也没用过,今天试了试发现很强大也很方便


首先安装

C:\Users\yuan.li>pip install pillow
Collecting pillow
  Downloading Pillow-4.3.0-cp36-cp36m-win32.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 654kB/s
Collecting olefile (from pillow)
  Downloading olefile-0.44.zip (74kB)
    100% |████████████████████████████████| 81kB 2.8MB/s
Building wheels for collected packages: olefile
  Running setup.py bdist_wheel for olefile ... done
  Stored in directory: C:\Users\yuan.li\AppData\Local\pip\Cache\wheels\20\58\49\cc7bd00345397059149a10b0259ef38b867935ea2ecff99a9b
Successfully built olefile
Installing collected packages: olefile, pillow
Successfully installed olefile-0.44 pillow-4.3.0


这个模块可以帮助我们读取和修改图片。为了完成上面的任务,我们需要了解一些基本的模块使用

Https://pillow.readthedocs.io/en/4.3.x/index.html


首先看看Image 模块,他的主要作用就是读取一个图片,然后可以打开或者另存为其他格式。


例1

from PIL import Image
im=Image.open('c:\\temp\\download.png','r')
print(im.fORMat, im.size, im.mode)
#把图片保存为临时文件打开
im.show()

wKioL1ndoRPgAdgUAAAwY4iunVA444.png



例2, 再例1 的基础上做些修改,这次我们把打开的文件另存为jpg的格式

import os, sys
from PIL import Image
#对每一个参数
for infile in sys.argv[1:]:
    f, e = os.path.splitext(infile)
    outfile = f + ".jpg"
    print(infile,outfile)
    if infile != outfile:
        try:
            #需要先转换格式为RGB,否则PNG格式无法直接转换为JPEG
            Image.open(infile).convert('RGB').save(outfile)
        except IOError:
            print("cannot convert", infile)


例3, 打开图片的方式和打开普通文件的方式一样,也可以用with as的格式

import sys
from PIL import Image
for infile in sys.argv[1:]:
    try:
        with Image.open(infile) as im:
            print(infile, im.format, "%dx%d" % im.size, im.mode)
    except IOError:
        pass


例4,我们还可以对图片进行剪切

im= Image.open('c:\\temp\d1.png')
box = (50, 50, 100, 100)
region = im.crop(box)
region.show()
region.transpose(Image.ROTATE_180)
region.show()
im.paste(region,box)
im.show()



第二个很重要的模块是ImageDraw模块,这个可以让我们对图片和文字进行创建和二次加工


例5,打开一个图片,在上面画线

from PIL import Image, ImageDraw
import sys
im = Image.open("c:\\temp\\d1.jpg")
print(im.size)
draw = ImageDraw.Draw(im)
#元组相加等于一个合并的元组,这里设置划线的起始坐标和重点坐标, 注意x坐标是向下跑的 fill里面设置RGBA的值
draw.line(((0, 0) + im.size), fill=(340,83,45),width=10)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
del draw
im.show()
im.save("c:\\temp\\d10.png")

wKiom1neECGB-1JMAAA4I8AE2WE868.png



例6. 在图片上写字 (题目要求)注意我们这里还调用了ImageFont 模块, 他的作用就是处理位图字体



from PIL import Image, ImageDraw, ImageFont

# 首先打开一图片,转换为RGBA方便保存和修改
base = Image.open('c:/temp/d1.png').convert('RGBA')

# 这里创建了一个同样大小的空白文件
txt = Image.new('RGBA', base.size, (255,255,255,0))

# 获取字体类型,大小
fnt = ImageFont.truetype('c:/windows/fonts/arial.ttf', 40)

# 准备修改这个图片
d = ImageDraw.Draw(txt)

# 指定坐标写字,颜色用RGBA来显示
d.text((10,10), "Hello", font=fnt, fill=(340,83,45,255))

# 指定坐标写字,颜色用RGBA来显示
d.text((100,60), "World", font=fnt, fill=(255,255,255,255))

#alpha通道组合2个图片,要求图片大小一致,都使用了RGBA
out = Image.alpha_composite(base, txt)
out.show()


wKiom1neECKS84wQAAAfOqCMEII565.png


例6里面我们使用了一个函数alpha_composite,他的意思是 alpha通道混合图像

注意RGBA的A就是指Alpha通道,一般理解为透明度的设置

下面是如何根据Alpha通道数据进行图像混合的算法

事实上,我们把需要组合的颜色计算出不含Alpha分量的原始RGB分量然后相加便可。如:两幅图像分别为A和B,由这两幅图像组合而成的图像称为C,则可用如下四元组表示图A和B,三元组表示图像C:

A:(Ra,Ga,Ba,Alphaa)

B:(Rb,Gb,Bb,Alphab)

C:(Rc,GC,Bc)

根据上述算法,则:

Rc=Ra*Alphaa+Rb*Alphab

Gc=Ga*Alphaa+Gb*Alphab

Bc=Ba*Alphaa+Bb*Alphab

这就是两图像混合后的三原色分量。如果有多幅图像需要混合,则按照以上方法两幅两幅地进行混合。


--结束END--

本文标题: Python 趣味练习- 修改图片

本文链接: https://www.lsjlt.com/news/182740.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 趣味练习- 修改图片
    无聊在Github上看见python的趣味练习题,自己试着做了做https://github.com/Yixiaohan/show-me-the-code 第 0000 题: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微...
    99+
    2023-01-31
    趣味 图片 Python
  • 趣味Python实战练习之自动更换桌面壁纸脚本附源码
    目录前言目标地址先是爬虫代码导入数据请求数据解析数据保存数据运行代码,查看结果自动跟换桌面壁纸代码最后实现效果前言 发现一个不错的壁纸网站,里面都是超高清的图片,而且还是免费为的。 ...
    99+
    2024-04-02
  • Python海龟绘图之绘制趣味简笔画
    目录图画效果:代码分享:红日部分 :黑边红底小鸟函数:海鸥飞翔大船部分:船身加旗帜小船部分:船身加旗帜水面部分:横线表示图画效果: 代码分享: 整体由四部分组成:红日、小鸟、大小...
    99+
    2024-04-02
  • Java趣味练习题之输出两个日期之间的相隔天数
    目录导语一、需求及思路二、代码实现结语源码部分utility工具类Time测试类导语 朋友们大家好,今天给大家带来一个经典题目,求两个日期之间的相隔天数。 一、需求及思路 首先,题目...
    99+
    2024-04-02
  • Python画图练习案例分享
    目录1.多边形的绘制案例2.太阳花案例3.颜色五角星案例4.艺术图片5.黑六边形6.绘制时钟7.绘制分形树8.彩虹线绘制案例1.多边形的绘制案例 # 多边形的绘制案例 import ...
    99+
    2024-04-02
  • Python怎么实现修改图片分辨率
    小编给大家分享一下Python怎么实现修改图片分辨率,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!环境依赖ffmpeg环境安装,可以参考:windows ffmpeg安装部署ffmpy安装:pip install...
    99+
    2023-06-22
  • php html如何修改图片
    本文将为大家详细介绍“php html如何修改图片”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php html如何修改图片”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知...
    99+
    2023-06-06
  • JavaScript怎么修改svg图片
    这篇文章主要介绍“JavaScript怎么修改svg图片”,在日常操作中,相信很多人在JavaScript怎么修改svg图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么修改svg图片...
    99+
    2023-07-06
  • Python实现修改图片分辨率(附代码)
    目录前言环境依赖代码验证一下前言 本文提供将图片分辨率调整的python代码,一如既往的实用主义。 环境依赖 ffmpeg环境安装,可以参考:windows ffmpeg安装部署 f...
    99+
    2024-04-02
  • php如何修改图片像素
    本篇内容主要讲解“php如何修改图片像素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何修改图片像素”吧!php修改图片像素的方法:首先创建一个PHP示例文件;然后通过“function...
    99+
    2023-06-20
  • photozoom如何修改图片保存
    本文小编为大家详细介绍“photozoom如何修改图片保存”,内容详细,步骤清晰,细节处理妥当,希望这篇“photozoom如何修改图片保存”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。photozoom修改图片...
    99+
    2023-07-04
  • jquery如何修改背景图片
    使用jquery修改背景图片的方法:1.新建html项目,引入jquery;2.创建div标签,设置背景图片;3.添加button按钮,绑定onclick点击事件;4.通过标签名获取图片对象,使用css()方法修改背景图片;具体步骤如下:首...
    99+
    2024-04-02
  • html怎么修改图片大小
    在网页设计中,图片是一个非常重要的元素,它可以增加网站的美观度,吸引用户的注意力。在很多情况下,我们需要修改图片的大小来达到最佳的效果。本文主要介绍如何使用 HTML 来修改图片大小。在 HTML 中,有两种常用的方式来修改图片大小:使用 ...
    99+
    2023-05-14
  • jquery如何修改图片地址
    在jquery中修改图片地址的方法:1.新建html项目,引入jquery;2.添加图片,设置id属性;3.创建button按钮,绑定onclick事件;4.通过id获取img对象,使用attr()方法修改图片地址;具体步骤如下:首先,新建...
    99+
    2024-04-02
  • JavaScript练习小项目之修改div块的颜色
    目录什么是JavaScript?实现目标实现代码实现效果实现方法总结什么是JavaScript? 一开始的网页就是单纯的静态网页,为了使用户能与网页交互,设计出了JavaScript...
    99+
    2023-01-28
    js改变div颜色 js修改div背景颜色 js改变div颜色
  • 怎么用CSS修改图片颜色
    小编给大家分享一下怎么用CSS修改图片颜色,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤...
    99+
    2024-04-02
  • 怎么用Python修改一张图片的地理位置
    这篇文章主要介绍“怎么用Python修改一张图片的地理位置”,在日常操作中,相信很多人在怎么用Python修改一张图片的地理位置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python修改一张图片的地...
    99+
    2023-06-16
  • vue使用element实现上传图片和修改图片功能
    目录前言一、应用场景1.上传图片并进行放大预览2.图片上传代码二、修改已经上传的图片,并展示到图片列表中1.效果展示(先展示原来的图片,再上传新图片,也可删除原来的图片)2.编辑代码...
    99+
    2024-04-02
  • php如何修改图片上传大小
    小编给大家分享一下php如何修改图片上传大小,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php修改图片上传大小的方法:1、找到php的配置文件php.ini,然...
    99+
    2023-06-15
  • Goland修改背景为图片的方法
    这篇文章主要介绍了Goland修改背景为图片的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Goland如何修改背景为图片下麦是正常的代码的背景图,这样看着没有一点的新鲜...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作