python总结函数图像_PIL使用小结(crop和paste函数)

PIL(Python Imaging Library)是python语言中对图像处理方面的一个开源库,其主要功能模块为Image,对于Image模块,可以使用

from PIL import Image

或者

import Image

由于使用了试用版的chartdir库,在生成图片的时候下面会出现一行提示是非注册版的文字,看起来不太舒服。

cca66094-377e-39b7-9cf9-cbad8da5b3bb.png

所以想使用PIL自动地将下面一行去掉,查阅了一下PIL的文档,最后决定使用PIL的crop和paste函数实现功能

实现的代码如下:

import Image

import sys

if len(sys.argv)<2:

print '%s ' % __file__

sys.exit()

else:

filename = sys.argv[1]

img = Image.open(filename)

width = img.size[0]

height = img.size[1]

img1 = img.crop((0,0,width,9))

#img1 = Image.new('RGBA',(width,10))

img.paste(img1,(0,height-9))

img.save(filename)

img = Image.open(filename)

img.show()

这可以使用的方法有两种,第一种是以及被注释掉的方法,即生成一个新的Image,调用Image.new方法。然后将该image粘贴到需要修改的图片上。另外一种为了保持图片的前后背景色一致,从图片的最前头拷贝一部分图片(使用crop函数),然后在粘贴到需要修改的图片上,来完成最下端文字的覆盖。

crop函数带的参数为(起始点的横坐标,起始点的纵坐标,宽度,高度)

paste函数的参数为(需要修改的图片,粘贴的起始点的横坐标,粘贴的起始点的纵坐标)

下面是处理结果之后的图片:

ee017baf-1306-34e5-a627-927cafd9b5f9.png

PS.使用chartdir生成图片的Python脚本

#!-*- encoding: utf-8 -*-

#!/usr/bin/python

from pychartdir import *

# The data for the bar chart

data = [450, 560, 630, 800, 1100, 1350, 1600, 1950, 2300, 2700, 3200, 3800]

# The labels for the bar chart

labels = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月",

"十月", "十一月", "十二月"]

# Create a XYChart object of size 600 x 360 pixels

c = XYChart(600, 360)

# Add a title to the chart using 18pts Times Bold Italic font

c.addTitle("卖家月份销售图表", "simsun.ttc", 18)

# Set the plotarea at (60, 40) and of size 500 x 280 pixels. Use a vertical gradient

# color from light blue (eeeeff) to deep blue (0000cc) as background. Set border and

# grid lines to white (ffffff).

c.setPlotArea(60, 40, 500, 280, c.linearGradientColor(60, 40, 60, 280, 0xeeeeff,

0x0000cc), -1, 0xffffff, 0xffffff)

# Add a multi-color bar chart layer using the supplied data. Use soft lighting effect

# with light direction from left.

c.addBarLayer3(data).setBorderColor(Transparent, softLighting(Left))

# Set x axis labels using the given labels

c.xAxis().setLabels(labels)

# Draw the ticks between label positions (instead of at label positions)

c.xAxis().setTickOffset(0.5)

# Add a title to the y axis with 10pts Arial Bold font

c.yAxis().setTitle("人民币 (元)", "simsun.ttc", 10)

# Set axis label style to 8pts Arial Bold

c.xAxis().setLabelStyle("simsun.ttc", 8)

c.yAxis().setLabelStyle("simsun.ttc", 8)

# Set axis line width to 2 pixels

c.xAxis().setWidth(2)

c.yAxis().setWidth(2)

# Output the chart

c.makeChart("1.png")

d8ba761b40be40e09376630c8f87b07b.png

大小: 9.9 KB

aebff916a0382b3e863047a87a558c24.png

大小: 14.1 KB

2

0

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-04-07 00:07

浏览 31865

评论

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

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

相关文章

js中apply和join

join 分隔符分隔指定数组中的数据,不仅可以分割&#xff0c;还可以考虑用join("")合并&#xff0c;可以将一个array对象数据进行合并 1 <script>2 vark["2","3",4,5];3 alert(k.join(""));4 vars["s",":",,…

12333新农合网上查询_新农合医保查询缴费平台|新农村医疗保险网上缴费平台

这个智慧新农合新农合患者就诊从挂号到缴费&#xff0c;不用再拿着各种票据在报销处和收费处之间奔走&#xff0c;也不用担心票据不完整造成无法正常报销的情况&#xff0c;只需携带本人有效身份证和农合本&#xff0c;凭身份证号码或新农合号码即可实时报销所有费用&#xff0…

晚上我们一起去白码会所玩啊!

1 白学公主和白码王子真般配晚上一起去白码会所玩啊▼2 看完这些图我觉得要重新考虑要不要让男人陪产了▼3 乒乓球拍好难吃啊▼4 论朋友圈美食照片是怎么来的▼5 论推广普通话的重要性▼6 关键是&#xff0c;你吃完一身味忘不掉而且大多数人吃一次还想吃▼7 想知道一天1…

怎样去掉桌面图标和字的蓝色阴影

在“运行”中输入“gpedit.msc”&#xff0c;打开组策略&#xff1b;在“用户配置→管理模板→桌面→Active Desktop”中 &#xff0c;点 启用Active Desktop(活动桌面)然后点击“属性”选定“已禁用”&#xff0c;点禁用Active Desktop (活动 桌面)“属性”选定“已启用”&…

System.Linq捉虫记 | 论变量命名的重要性

前言下面这段代码&#xff0c;你能发现什么问题吗&#xff1f;List<int> a new List<int>{ 1, 2, 3, 4, 5 };var last2 a.TakeLast(2);foreach (var item in last2) { Console.WriteLine(item); }a.AddRange(new[] { 11, 12, 13, 14, 15 });foreach (var item in…

ASP.NET的SEO:HTTP报头状态码---内容重定向

本系列目录 我们经常说“404错误”&#xff0c;你知道他指的是什么意思么&#xff1f; 404其实是Http报头所包含的一个“状态码”&#xff0c;表明该Http请求失败。那么除此之外&#xff0c;还有哪些常用的状态码呢&#xff1f;这些状态码和SEO又有什么关系呢&#xff1f;每次当…

mysql批量条件字段_mysql批量更新多条记录的同一个字段为不同值的方法

首先mysql更新数据的某个字段&#xff0c;一般这样写&#xff1a; UPDATE mytable SET myfield value WHERE other_field other_value;也可以这样用in指定要更新的记录&#xff1a; UPDATE mytable SET myfield value WHERE other_field in (other_values);这里注意 ‘other…

java 双向链表_java集合类之LinkedList

LinkedList简介LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口&#xff0c;能对它进行队列操作。LinkedList 实现 Deque 接口&#xff0c;即能将LinkedList当作双端队列使用。LinkedList 实…

DOS命令未公开的命令

dos系统中有许多未公开的命令与参数。我经过收集整理&#xff0c;发现了很多。由于dos的有好几种&#xff0c;所以下面仅以ms&#xff0d;dos为例&#xff0c;介绍一下常用命令中的未公开的命令与参数。经过比较&#xff0c;我发现在ms&#xff0d;dos的各版本中&#xff0c;7.…

疯狂福利 | 美剧《天赋异禀》1-2季免费送!播放超12亿!刷了整整一晚上,太上头!...

全世界只有3.14 % 的人关注了爆炸吧知识蹬&#xff0c;蹬&#xff0c;蹬&#xff01;爆炸吧知识的好朋友【知英语】来撒福利啦……超火美剧《天赋异禀》1-2季&#xff0c;一次性打包免费送给你喽&#xff01;注意在“知英语”公众号回复【天赋】即可获取&#xff0c;记得收好哦…

西电开源社区Ubuntu 10.04软件源

使用方法&#xff1a;sudo mv /etc/apt/sources.list{,.back} //备份一下原来的配置&#xff0c;可以跳过sudo gedit /etc/apt/sources.list把下边的内容贴近去&#xff1a;deb ftp://linux.xidian.edu.cn/ubuntu/ lucid main restricted universe multiversedeb ftp://linux…

.Net之SoapCore简单使用

最近在工作中&#xff0c;需要同时放出来WebAPI接口和支持Soap协议的WebService接口&#xff0c;在dotNetFramework时候玩过WebService&#xff0c;这可是好久没再碰过了&#xff0c;没想到现在居然遇到了。只好迎难而上。介绍本来是在ASP.NetCore中使用了组件SoapCore来使用So…

Word打不开,如何修复word文档?

2019独角兽企业重金招聘Python工程师标准>>> 亲爱的你有没有遇到过写了好久的一篇文档突然打不开的惨剧&#xff1f;有没有为一篇重要的文件被损坏而苦恼几天的情形&#xff1f;遇到这种情况怎么办&#xff1f;不要急&#xff0c;不要急&#xff01;我将会给你带来一…

java utf8 转换al32utf8_java与Unicode

在notepad中用utf8格式保存“你好”两个汉字&#xff0c;文件名为a.txt.在eclipse中设置编码格式为gbk.在eclipse中用FileReader读取这个文件。FileReader的read方法返回的为int型&#xff0c;用char做强制转换。结果出现乱码&#xff0c;第一个乱码为“浣”。由于a.txt中的编码…

Nginx实用指南V1 (连载之六:cacti监控)

申明&#xff1a;本连载的文章来自&#xff1a;Nginx官网、张 宴BLOG、linuxtone论坛、互联网、本人原创。并尽力在官网文档的基础发表原创作品。并保证文档的质量与错误率。如有作者认为本文有涉及版权问 题请与我联系&#xff1a; liuyu105#gmail.com。 Nginx 监控(cacti) A、…

面试了57位数据分析师,我发现牛逼的人都有这4个特质

全世界只有3.14 % 的人关注了爆炸吧知识现在的职场竞争越来越激烈&#xff0c;不学上一两门新技能&#xff0c;保持自己知识更新&#xff0c;很容易被年轻后辈超越。有些人选择学一门外语&#xff0c;有些人选择学习职场上为人处事的能力。如果你的工作需要和数据打交道&#x…

iNeuOS工业互联网,增加一批PLC、核工业、数字模块、传感器等设备驱动

增加流量计、AI/AO/DI/DO模块、质谱、色谱、加热炉及其他行业专用设备等&#xff0c;不同的通讯协议和通讯机制整体集成到iNeuOS系统中。数据采集&#xff0c;涉及到领域的专业设备、通用设备和PLC&#xff0c;有国内传感器和国外传感器&#xff0c;通讯协议和数据格式多种多样…

屏保自己做

因需要根据不同星期自动调用不同屏保图片&#xff0c;自己动手做了一个 代码如下&#xff1a; //主工程文件 program scrsave;usesForms,Unit1 in Unit1.pas {Form1};{$R *.res}beginApplication.Initialize;Application.Title : 横店屏保一;Application.CreateForm(TForm1, Fo…

SpringMVC异常处理流程

2019独角兽企业重金招聘Python工程师标准>>> Controller中的方法执行出现异常ex.ex在DispatchServlet中被捕获,交给默认的ExceptionHandlerExceptionResolver进行处理.ExceptionHandlerExceptionResolver先在Controller中找标有ExceptionHandler的方法.没有找到. go…

python if main_Python:if __name__ == '__main__'

简介&#xff1a;__name__是当前模块名&#xff0c;当模块被直接运行时模块名为_main_&#xff0c;也就是当前的模块&#xff0c;当模块被导入时&#xff0c;模块名就不是__main__&#xff0c;即代码将不会执行。关于代码if __name__ __main__: 下面举几个例子解释下:先编写一…