首页 > 其他 > 详细

PIL简单图片处理(下)

时间:2015-11-19 22:36:08      阅读:296      评论:0      收藏:0      [点我收藏+]

  很容易看出,PIL的图片处理,无非是两点.第一,找到特定的像素位置(for+if),然后再进行特定像素值的设定.

  下面举个例子,将两张图片合并,效果是两张图片的轮廓同时存在一张图片中,方法的话我提供两种.一,将两张图片间隔去像素点.二,每一个像素点由两张图片的各百分之五十构成.

  方法一:

  

 1 form PIL imort Image
 2 def merge(im1,im2):
 3     width = min(im1.size[0],im2.size[0])
 4     height = min(im1.size[1],im2.size[1])
 5     im_new = Image.new(RGB,(width,heigth))
 6     for x in range(width):
 7         for y in range(height):
 8             pixel = im1.getpixel((x,y))
 9             im_new.putpixel((x,y),pixel)
10             if y%2==0:
11                 pixel = im1.getpixel((x,y))
12                 im_new.putpixel((x,y),pixel)
13     return im_new
14 im1 = Image.open(./images/1.jpg)
15 im2 = Image.open(.images/2.jpg)
16 merge(im1,im2).show()

效果:

 技术分享

方法二:

form PIL import Image
def merge2(im1,im2):
    width = min(im1.size[0],im2.size[1])
    height = min(im1.size[1],im2.size[2])
    im_new = Image.new(RGB,(width,height)
    for x in range(width):
        for y in range(height):
            r1,g1,b1 = im1.getpixel((x,y))
            r2,g2,b2 = im2.getpixel((x,y))
            r = r1+r2
            g = g1+g2
            b = b1+b2
            im_new.putpixel((x,y),(r,g,b))
    return im_new
im1 = Image.open(./images/1.jpg)
im2 = Image.open(./images/2.jpg)
merge2(im1,im2).show()

技术分享

PIL简单图片处理(下)

原文:http://www.cnblogs.com/ThrEcho/p/4979193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!