利用python进行简单的图片处理
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进行简单的图片处理的更多相关文章
- 利用python进行简单的图像处理:包括打开,显示以及保存图像
利用python进行简单的图像处理:包括打开,显示以及保存图像 利用PIL处理 PIL(python image library) 是python用于图片处理的package.但目前这个package ...
- Python 利用Python编写简单网络爬虫实例3
利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...
- Python 利用Python编写简单网络爬虫实例2
利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...
- 利用Python实现简单的相似图片搜索的教程
大概五年前吧,我那时还在为一家约会网站做开发工作.他们是早期创业公司,但他们也开始拥有了一些稳定用户量.不像其他约会网站,这家公司向来以洁身自好为主要市场形象.它不是一个供你鬼混的网站——是让你能找到 ...
- 利用Python进行简单的图像识别(验证码)
这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt ...
- 利用python,简单的词语纠错
利用python,编写一个简单的词语纠正修改器. 原文:http://norvig.com/spell-correct.html #!/usr/bin/env python # coding=utf- ...
- 利用Python进行博客图片压缩
自己写博客的时候常常要插入一些手机拍的照片,都是几M的大小,每张手动压缩太费事了,于是根据自己博客的排版特点用Python写了一个简单的图片压缩脚本,功能是将博客图片生成缩略图,横屏的图片压缩为宽度最 ...
- 利用Python制作简单的小程序:IP查看器
前言 说实话,查看电脑的IP,也挺无聊的,但是够简单,所以就从这里开始吧.IP地址在操作系统里就可以直接查看.但是除了IP地址,我们也想通过IP获取地理地址和网络运营商情况.IP地址和地理地址并没有固 ...
- 利用Python爬取网页图片
最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片 ...
随机推荐
- leetcode:7. Reverse Integer
这题简单,也花了我好长时间,我自己写的code比较麻烦,也没啥技巧:按正负性分类执行,先转化成字符串,用stringbuilder进行旋转,如果超出范围了就用try catch public int ...
- Spring入门第二课
看代码 package logan.spring.study; public class HelloWorld { private String name; public void setName2( ...
- C# 中介者模式
中介者模式 中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系.中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为. 结构: 中介者模式设计两个 ...
- CSS 框模型概述
在 CSS 中,width 和 height 指的是内容区域的宽度和高度. 增加内边距.边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸. 假设框的每个边上有 10 个像素的外边距和 5 ...
- [hdu 1671] Phone List - Trie
Given a list of phone numbers, determine if it is consistent in the sense that no number is the pref ...
- Unity Shader着色器优化
https://mp.weixin.qq.com/s?__biz=MzU5MjQ1NTEwOA==&mid=2247493518&idx=1&sn=c51b92e9300bcf ...
- CSS布局那点事儿
布局 最开始老的一代网站开发,布局都是通过表格实现的. 这样可以形成规整的网格布局,但是也会带来一定的复杂性.比如想要新增某个页面元素,就有可能要改动整个表格,添加很多无用的行或者列. 后来,衍生出不 ...
- jmeter场景设计实战(一)
需求:2000用户在线,100用户并发访问首页. 和开发沟通了解了具体的需求:2000用户是在线登录状态,这2000用户中要达到100用户并发去访问首页,在这个过程中可能会有停留时间,并不是用户登录之 ...
- Idea设置签名
IntelliJ IDEA如何设置头注释,自定义author和date 下面这张图,保证你一看就会: 下面这个模板,你拿去改一改就行了. 1 /** 2 * @Author: Gosin 3 * ...
- JSON 的使用方法
JSON--JavaScript Object Notation,是一种轻量级的数据交互格式,本质是特定格式的字符串,相比xml更简洁,现在是客户端与服务器端交互的最常用选择,已经很少用xml了 JS ...