python的 PIL模块是专门用来处理图片的模块,其功能可以说是非常强大了。

演示环境: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-8from 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进行简单的图片处理的更多相关文章

  1. 利用python进行简单的图像处理:包括打开,显示以及保存图像

    利用python进行简单的图像处理:包括打开,显示以及保存图像 利用PIL处理 PIL(python image library) 是python用于图片处理的package.但目前这个package ...

  2. Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...

  3. Python 利用Python编写简单网络爬虫实例2

    利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...

  4. 利用Python实现简单的相似图片搜索的教程

    大概五年前吧,我那时还在为一家约会网站做开发工作.他们是早期创业公司,但他们也开始拥有了一些稳定用户量.不像其他约会网站,这家公司向来以洁身自好为主要市场形象.它不是一个供你鬼混的网站——是让你能找到 ...

  5. 利用Python进行简单的图像识别(验证码)

    这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt ...

  6. 利用python,简单的词语纠错

    利用python,编写一个简单的词语纠正修改器. 原文:http://norvig.com/spell-correct.html #!/usr/bin/env python # coding=utf- ...

  7. 利用Python进行博客图片压缩

    自己写博客的时候常常要插入一些手机拍的照片,都是几M的大小,每张手动压缩太费事了,于是根据自己博客的排版特点用Python写了一个简单的图片压缩脚本,功能是将博客图片生成缩略图,横屏的图片压缩为宽度最 ...

  8. 利用Python制作简单的小程序:IP查看器

    前言 说实话,查看电脑的IP,也挺无聊的,但是够简单,所以就从这里开始吧.IP地址在操作系统里就可以直接查看.但是除了IP地址,我们也想通过IP获取地理地址和网络运营商情况.IP地址和地理地址并没有固 ...

  9. 利用Python爬取网页图片

    最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片 ...

随机推荐

  1. JVM优化(未完)

    -XX:+PrintGC 在eclipse控制台打印简单的GC信息,与-verbose:gc一样 -verbose:gc 在eclipse控制台打印简单的GC信息 -XX:+PrintGCDetail ...

  2. Python脚本打包为exe文件

    本文转载自http://www.open-open.com/lib/view/open1342675735745.html   把用Python写好的脚本,可以用pyinstaller打包成.exe文 ...

  3. 8.Struts2-057漏洞复现

    漏洞信息: 定义XML配置时如果namespace值未设置且上层动作配置(Action Configuration)中未设置或用通配符namespace时可能会导致远程代码执行. url标签未设置va ...

  4. Sharepoint2013商务智能学习笔记之使用Current User Filter筛选Excel 数据(六)

    Sharepoint自带的filter可以和Excel Web Access互动,下面将制作一个Demo,使用Current User Filter根据当前登录用户自动筛选Excel. 第一步,用Ex ...

  5. JAVA对象创建的过程

    Java中一个实例对象被创建的过程 一.类的加载过程 首先,Jvm在执行时,遇到一个新的类时,会到内存中的方法区去找class的信息,如果找到就直接拿来用,如果没有找到,就会去将类文件加载到方法区.在 ...

  6. CodeForces - 906D Power Tower(欧拉降幂定理)

    Power Tower CodeForces - 906D 题目大意:有N个数字,然后给你q个区间,要你求每一个区间中所有的数字从左到右依次垒起来的次方的幂对m取模之后的数字是多少. 用到一个新知识, ...

  7. WPF 使用 fontawesome

    <Style TargetType="TextBlock" x:Key="tree-icon"> <Style.Setters> < ...

  8. 74th LeetCode Weekly Contest Valid Tic-Tac-Toe State

    A Tic-Tac-Toe board is given as a string array board. Return True if and only if it is possible to r ...

  9. python大战机器学习——数据预处理

    数据预处理的常用流程: 1)去除唯一属性 2)处理缺失值 3)属性编码 4)数据标准化.正则化 5)特征选择 6)主成分分析 1.去除唯一属性 如id属性,是唯一属性,直接去除就好 2.处理缺失值 ( ...

  10. VALID_FOR in db standby

    检查DG 装填: 目标主机检查mrp是否正常: SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%';--若mrp没有启动,则 ...