使用PIL处理image
- 获得一个Image实例
import Image
im = Image.open('1.jpg') #返回一个Image对象,open只对图片的头做处理,所以open操作是非常快的
- resize,裁剪、合并图像
im1 = im.resize(box1,Image.ANTIALIAS) #重新设定大小,设定ANTIALIAS,即抗锯齿
im1.save('2.jpg',quality=100) #设置图片质量为100
xsize,ysize = im1.size
box = (xsize/2-25,ysize/2-25,xsize/2+25,ysize/2+25) #设置中间的50x50区域
region=im1.crop(box) #根据坐标矩阵box,画出区域
region.save('4.jpg','png',quality=100 )
设置好quality和Image.ANTIALIAS是比较重要的,因为这样才能获得比较满意的图片质量,但是响应地也会增大图片的大小,所以和做好取舍,一般quality设定为90就可以了
- Django开发时如果要使用到略缩图,推荐用django-thumbs,其本质也是用PIL实现的
这是Google code上的官网:https://code.google.com/p/django-thumbs/
使用起来很方便,基本和django自带的ImageFields没有大的区别,下载django-thumbs的模块后里面有详细的介绍
使用PIL处理image的更多相关文章
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Mac osx 安装PIL出现Some externally hosted files were ignored (use --allow-external PIL to allow).
出现这个问题Some externally hosted files were ignored (use --allow-external PIL to allow)的主要原因是PIL的一些依赖库还没 ...
- 使用Python中PIL图形库进行截屏
目的:通过使用Python的一个图形库PIL(Python Image Library)对屏幕进行截图 步骤: 1.下载PIL(路径)并安装 2.新建文件“截屏.py”,右键Edit with IDL ...
- python PIL比较图片像素
# -*- coding: utf-8 -*- from PIL import Image from pylab import * def compare_pic_L(pic1,pic2): #打开第 ...
- 支付宝AR红包引出Python中的PIL小试
这两天支付宝AR红包火了,周围的同学全在玩.可是我一直在想这个原理是什么?通过请教大神和思考,知道了它有两个限定条件:GPS地理位置和图片的识别.所以,只要我们有了这两个限定条件,就不难进行该红包的破 ...
- 解决win7下PIL无法打开图片的问题
找到PIL安装文件里的ImageShow.py 把第99行的 return "start /wait %s && del /f %s" % (file, file) ...
- python2.7安装PIL.Image模块
这是大家常用的两种安装方法 sudo pip install PIL pip install PIL --allow-external PIL --allow-unverified PIL 如果安装成 ...
- Mac下python初学之Image库(PIL)
Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...
- PIL中的Image和numpy中的数组array相互转换
1. PIL image转换成array img = np.asarray(image) 需要注意的是,如果出现read-only错误,并不是转换的错误,一般是你读取的图片的时候,默认选择的是&quo ...
- windows下python Tkinner环境布置(包含PIL环境安装)
布置步骤:1.安装python 2.7.11 安装步骤:由于网上存在有相关经验,所以在此引用一下 http://jingyan.baidu.com/article/0bc808fc42dfab1bd4 ...
随机推荐
- Objective C静态代码扫描和代码质量管理 OClint + SonarQube
OClint是针对C, C++及Objective C代码的静态扫描分析工具,而SonarQube是一个开源的代码质量管理平台.本文将实现将OClint的扫描结果导入到SonarQube中,已实现对O ...
- easyui问题小记
在easyui1.4.3版本中,(其他版本不知道是不是也是这样的),绑定在datagridview上面的数据最好不要是带有特殊符号的字段,不然会导致部分的属性不好用,比如这样的字段 START_DA ...
- POJ1014Dividing(DP)
http://poj.org/problem?id=1014 最简单之多重背包 #include <map> #include <set> #include <stack ...
- JDBC 是什么
JDBC is a Java database connectivity technology (Java Standard Edition platform) from Oracle Corpora ...
- IAP内购
IAPHelper.h // // IAPHelper.h // airplay // // Created by apple on 13-10-23. // Copyright (c) 2013年 ...
- 异常:exception和error的区别
Throwable 是所有 Java 程序中错误处理的父类 ,有两种子类: Error 和 Exception . Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM ...
- 如何在KVM中管理存储池
来自:http://blog.csdn.net/my2005lb/article/details/8635661 KVM平台以存储池的形式对存储进行统一管理,所谓存储池可以理解为本地目录.通过远端磁盘 ...
- Flex Builder 开发语言切换问题
1.Flex Builder 4.6切换语言 打开\Adobe\Adobe Flash Builder 4.6\FlashBuilder.ini -nlzh_CN-startupeclipse/plu ...
- 对Slony-I中wait on的理解
http://slony.info/documentation/2.1/advanced.html#AEN1425 4.1.2. Event Confirmations When an event i ...
- ProbS CF matlab源代码(二分系统)(原创作品,转载注明出处,谢谢!)
%ProbS clear all;%% 数据读入与预处理 data = load('E:\network_papers\u1.base');test = load('E:\network_papers ...