zoukankan      html  css  js  c++  java
  • python图像处理(2)图像水印和PIL模式转化

    模式转化:

    PIL模式转化:将图片转化成其他模式

     1 # 我们将image图像转化为灰度图像(python)
     2 from PIL import Image
     3 img = Image.open('c:\1.JPG')
     4 img.show()    # 图像的打开展示
     5 # L = I.convert('L')
     6 # PIL的九种不同模式:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F 
     7 # 模式转化语句 
     8 L = img.convert('I')
     9 w,h = img.size        # 图尺寸
    10 mode = img.mode         # 图片的模式
    11 geshi = img.format     # 图片的格式                
    12 print(w,h,mode,geshi)
    13 L.show()

    文字水印:

    from PIL import Image, ImageDraw, ImageFont
    # 添加文字水印
    # RGBA的意思是(Red-Green-Blue-Alpha)它是在RGB上扩展包括了“alpha”通道,运行对颜色值设置透明度
    im = Image.open("C:/1.jpg").convert('RGBA')  
    txt=Image.new('RGBA', im.size, (0,0,0,0))    # 图像的大小 颜色的四个属性 数字越大越表现这个通道属性
    fnt=ImageFont.truetype("c:/Windows/fonts/Candara.ttf", 50)        # 选水印的字体 选暗色字体,显色的无法出现不知原因
    d=ImageDraw.Draw(txt)
    d.text((txt.size[0]-120,txt.size[1]-50), "Hello",font=fnt,fill=(255,0,0,255))
    out=Image.alpha_composite(im,txt)
    out.show()
    out.save(r"c:/pp.png")

    图片水印:

    # 添加图片水印
    
    im = Image.open("C:/2.jpg")
    mark=Image.open("C:/1.jpg")
    print(im.size)
    # RGBA表示四个属性A表示透明度 关于new(‘模式’,大小尺寸,颜色)
    layer=Image.new('RGBA', im.size, (0,0,0,0))
    layer.paste(mark, (im.size[0]-400,im.size[1]-200))    # 改变水印图片的位置
    # composite:使用两幅给出的图片和一个与alpha参数相似用法的mask参数其值可为:"1","L","RGBA"。两幅图片的size必须相同。
    out=Image.composite(layer,im,layer)
    out.show()

    #参考 https://blog.csdn.net/icamera0/article/details/50747084

  • 相关阅读:
    TOMCAT原理详解及请求过程
    详解Tomcat配置及使用
    Android网络编程(三)Volley使用方法全解析
    Android开发文档翻译之-Services
    竞赛中经常使用的C++写法
    Android消息机制
    boost的内存管理
    二叉树遍历技巧
    【 D3.js 视频系列 】 飞速入门
    [Spring实战系列](19)Servlet不同版本号之间的差别
  • 原文地址:https://www.cnblogs.com/zhanghaiyan/p/9398753.html
Copyright © 2011-2022 走看看