利用python进行简单的图片处理
2017-03-17 14:42
736 查看
python的 PIL模块是专门用来处理图片的模块,其功能可以说是非常强大了。
演示环境:win7 操作系统 安装python2.7以及指定的对应PIL模块 我这里有一个现成的PIL模块。本文的大部分代码也在这里:
https://github.com/RockDeria/rock_pil_test.git
演示示例1:图片的裁切
上述代码将jgz.jpg图片的((10,10), (10,100),(100,10),(100,100))所划出的区域进行裁切并保存在cutting.jpg当中
演示示例2:图片的拼合
上述的代码将background.jpg当做背景,将jgz1.jpg拼在其上边,位置是(196.139)。并保存为out.jpg
演示示例3:图片的缩放
上述代码,将jpz.jpg的横向像素强制为310,纵横比不变。并保存在jgz1.jpg当中
演示实例4:在图片上写文字
上述代码:保证 simhei.ttf的路径可以找到。在图片 img.jpg的(140,560) (160,630)两个位置分别写入txt 和 txt2这两句汉字。文件编码是utf-8,并另存为out.jpg
演示示例5:将图片alpha通道化,理论上将白色变成透明
上述代码:将jgz.jpg的白色透明化并另存为jgz_alpha.png。注意透明化的图片文件的格式一般为png
演示环境:win7 操作系统 安装python2.7以及指定的对应PIL模块 我这里有一个现成的PIL模块。本文的大部分代码也在这里:
https://github.com/RockDeria/rock_pil_test.git
演示示例1:图片的裁切
from PIL import Image im = Image.open("jgz.jpg") box = (10,10,100,100) region = im.crop(box) region.save("cutting.jpg")
上述代码将jgz.jpg图片的((10,10), (10,100),(100,10),(100,100))所划出的区域进行裁切并保存在cutting.jpg当中
演示示例2:图片的拼合
from PIL import Image img = Image.open("./background.jpg") jgz = Image.open("./jgz1.jpg") img.paste(jgz,(196,139)) img.save("./out.jpg")
上述的代码将background.jpg当做背景,将jgz1.jpg拼在其上边,位置是(196.139)。并保存为out.jpg
演示示例3:图片的缩放
from PIL import Image infile = './jgz.jpg' outfile = './jgz1.jpg' im = Image.open(infile) (x,y) = im.size x_s = 310 y_s = y*x_s/x out=im.resize((x_s,y_s),Image.ANTIALIAS) out.save(outfile)
上述代码,将jpz.jpg的横向像素强制为310,纵横比不变。并保存在jgz1.jpg当中
演示实例4:在图片上写文字
#coding=utf-8 from PIL import Image, ImageDraw, ImageFont txt = "你这个死宅说话" txt2 = " 还挺搞笑的" font_img = Image.open("./img.jpg") draw = ImageDraw.Draw(font_img) ttfront = ImageFont.truetype('./simhei.ttf',55) draw.text((140,560),unicode(txt,"UTF-8"), fill=(0,0,0), font=ttfront) draw.text((160,630),unicode(txt2,"UTF-8"), fill=(0,0,0), font=ttfront) font_img.save("./out.jpg")
上述代码:保证 simhei.ttf的路径可以找到。在图片 img.jpg的(140,560) (160,630)两个位置分别写入txt 和 txt2这两句汉字。文件编码是utf-8,并另存为out.jpg
演示示例5:将图片alpha通道化,理论上将白色变成透明
from PIL import Image img = Image.open("jgz.jpg") img = img.convert("RGBA") datas = img.getdata() newData = list() for item in datas: if item[0] >220 and item[1] > 220 and item[2] > 220: newData.append(( 255, 255, 255, 0)) else: newData.append(item) img.putdata(newData) img.save("jgz_alpha.png","PNG")
上述代码:将jgz.jpg的白色透明化并另存为jgz_alpha.png。注意透明化的图片文件的格式一般为png
相关文章推荐
- 利用Python的PIL库进行简单的图像处理
- 利用Python对文本文件进行简单的处理
- [python]利用BeautifulSoup进行简单图片抓取
- 基于Qt与OpenCV的图片读取、保存,并利用Canny进行简单的边缘处理结果显示
- 利用keras中image.ImageDataGenerator.flow_from_directory()实现从文件夹中提取图片和进行简单归一化处理
- 用python简单处理图片(1):打开\显示\保存图像
- 利用亦或进行简单的加解密约定处理
- Python(1):简单图像处理(图片->二进制->图片)
- Android OpenGLES2.0(九)——利用OpenGL进行图片处理
- 用python给文件夹下所有图片进行缩放处理
- 利用python进行识别相似图片
- 用python简单处理图片(5):图像直方图
- **ANDROID**# 第七章图形与图像处理(静态处理) > Bitmap是有像素点构成的点阵图。 ------ ## 使用简单的图片 ---- * 通过Drawable对象进行访问。
- 利用android Matrix来处理简单图片
- 利用canvas对图片进行灰度色处理,图片只有一半变成灰度色
- 简单介绍利用TK在Python下进行GUI编程的教程
- 利用Python进行图片发送与接收的两种方法---包含客户端和服务器端代码
- Python图片处理库Wand的简单使用
- 利用UIImageJPEGRepresentation与UIGraphicsBeginImageContext进行图片压缩的简单比较
- 用python简单处理图片(4):图像中的像素访问