zoukankan      html  css  js  c++  java
  • PIL简单图片处理(下)

      很容易看出,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()

  • 相关阅读:
    Java程序员必知的8大排序
    JQUERY 展开收起显示隐藏效果
    Java程序员必知的8大排序
    辞职申请
    值得收藏的Microsoft SQL Server下的SQL语句
    SQL
    sql language
    insert with special ID
    ExcuteNonQuery
    JS
  • 原文地址:https://www.cnblogs.com/ThrEcho/p/4979193.html
Copyright © 2011-2022 走看看