PIL(http://www.pythonware.com/products/pil/)中包含很多图形处理库,主要是Image,Image库中包含三个类(Image、ImagePointHandler、ImageTransformHandler)及若干方法。

今天实验了一把,打开两个差异很小的图片,将其中一个反色处理,然后在将两个图像混合,就能比较清晰的看到差异的地方。

唔~~~~,这要是扩展一下,增加截图功能,可以做成“大家来找茬”之类游戏的作弊器了!!阿门~~~

代码如下:

import Image, ImageChops
im1 = Image.open('c:/1.bmp')
im2 = Image.open('c:/2.bmp')
im3 = ImageChops.invert(im2)
Image.blend(im1,im3,0.5).show()


原始图片如下:

1.bmp

2.bmp

混合后结果:

附:PIL.Image库说明文档



PIL.Image

#2009-11-15flPILrelease1.1.7


Classes
Image
ImagePointHandler
ImageTransformHandler


class Image
Methods defined here:
__getattr__(self, name)
__init__(self)
__repr__(self)
convert(self, mode =None, data =None, dither =None, palette =0, colors =256)
Converttootherpixelformat
copy(self)
Copyrasterdata
复制一个新的对象
crop(self, box =None)
Cropregionfromimage
draft(self, mode, size)
Configureimagedecoder
filter(self, filter)
Applyenvironmentfiltertoimage
fromstring(self, data, decoder_name ='raw', *args)
Loaddatatoimagefrombinarystring
从原始图像数据中加载图像,一般用来从剪切板中获取图像
getbands(self)
Getbandnames
getbbox(self)
Getboundingboxofactualdata(non-zeropixels)inimage
获取当前图像在实际图片中的范围
getcolors(self, maxcolors =256)
Getcolorsfromimage,uptogivenlimit
getdata(self, band =None)
Getimagedataassequenceobject.
获取图像数据列表。如果指定band,就获取这个颜色通道的值得列表
print im.getdata()[0]
(253,23,34)

getextrema(self)

Getmin/maxvalue
getim(self)
GetPyCObjectpointertointernalimagememory
getpalette(self)
Getpalettecontents.
getpixel(self, xy)
Getpixelvalue
获取每个坐标像素点的RGB值。参数xy格式为(x,y)
getprojection(self)
Getprojectiontoxandyaxes
histogram(self, mask =None, extrema =None)
Takehistogramofimage
load(self)
Explicitlyloadpixeldata.
offset(self, xoffset, yoffset =None)
(deprecated)Offsetimageinhorizontaland/orverticaldirection
paste(self, im, box =None, mask =None)
Pasteotherimageintoregion
point(self, lut, mode =None)
Mapimagethroughlookuptable
putalpha(self, alpha)
Setalphalayer
putdata(self, data, scale =1.0, offset =0.0)
Putdatafromasequenceobjectintoanimage.
putpalette(self, data, rawmode ='RGB')
Putpalettedataintoanimage.
putpixel(self, xy, value)
Setpixelvalue
设置某坐标像素点值
quantize(self, colors =256, method =0, kmeans =0, palette =None)
resize(self, size, resample =0)
Resizeimage
重新设置图像大小
rotate(self, angle, resample =0, expand =0)
Rotateimage.Anglegivenasdegreescounter-clockwise.
旋转图像
save(self, fp, format =None, **params)
Saveimagetofileorstream
保存图像
seek(self, frame)
Seektogivenframeinsequencefile
定位到动画某一帧,一般用于gif格式的文件图片
show(self, title =None, command =None)
Displayimage(fordebugpurposesonly)
现实图像,调用默认的图像浏览器
split(self)
Splitimageintobands
将图像按照RGB分别解析,返回三个Image对象
tell(self)
Returncurrentframenumber
返回当前帧号
thumbnail(self, size, resample =0)
Createthumbnailrepresentation(modifiesimageinplace)
创建缩略图,主要用来修改图像大小和清晰度,以便生产较小的文件
tobitmap(self, name ='image')
ReturnimageasanXBMbitmap
tostring(self, encoder_name ='raw', *args)
Returnimageasabinarystring
transform(self, size, method, data =None, resample =0, fill =1)
Transformimage
transpose(self, method)
Transposeimage(fliporrotatein90degreesteps)
verify(self)
Verifyfilecontents.

Data and other attributes defined here:
format = None

mode

format_description = None


classImagePointHandler


classImageTransformHandler


Functions
blend(im1, im2, alpha)
Interpolatebetweenimages.
将两张图片混合到一起。参数alpha是im1与im2的混合权重,范围为[0,1]
composite(image1, image2, mask)
Createcompositeimagebyblendingimagesusingatransparencymask
eval(image, *args)
Evaluateimageexpression
fromarray(obj, mode =None)
frombuffer(mode, size, data, decoder_name ='raw', *args)
Loadimagefromstringorbuffer
fromstring(mode, size, data, decoder_name ='raw', *args)
Loadimagefromstring
getmodebandnames(mode)
getmodebands(mode)
getmodebase(mode)
getmodetype(mode)
init()
Loadallfileformatdrivers.
isDirectory(f)
isImageType(t)
isNumberType(...)
isNumberType(a)--ReturnTrueifahasanumerictype,Falseotherwise.
isSequenceType(...)
isSequenceType(a)--ReturnTrueifahasasequencetype,Falseotherwise.
isStringType(t)
##
#(Internal)Checksifanobjectisastring.Ifthecurrent
#PythonversionsupportsUnicode,thischecksforboth8-bit
#andUnicodestrings.
isTupleType(t)
merge(mode, bands)
Mergeasetofsinglebandimagesintoanewmultibandimage.
new(mode, size, color =0)
Createanewimage
创建一个Image对象
open(fp, mode ='r')
Openanimagefile,withoutloadingtherasterdata
打开图片文件
preinit()
Loadstandardfileformatdrivers.
register_extension(id, extension)
register_mime(id, mimetype)
register_open(id, factory, accept =None)
register_save(id, driver)

更多相关文章

  1. python 简单图像处理(2) 镜像
  2. python 3.3 爬虫之爬取图片
  3. 使用python将图片转换为字符图片
  4. python使用多进程爬取图片
  5. caffe python批量抽取图像特征
  6. 怎样用Python3 写一个爬图片的程序?
  7. wxPython 显示一张图片
  8. 在Python中显示来自控制台的图像
  9. 学习Python爬虫(五):爬取图片

随机推荐

  1. Android 4.0 input touch解析(一)
  2. android自定义布局中的平滑移动
  3. Java讲师与Android讲师通缉令--悬赏2000
  4. Android 开发者必备的十个工具
  5. android 进程之间通信--Android 使用【AI
  6. Android开发中的游戏开发使用View还是Sur
  7. 【Android】android镜像翻转
  8. Android学习07-----事件处理(1)单击事件_
  9. Android 中文 API――android.widget合集
  10. Android中级教程之--------Android应用程