香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

python使用PIL模块实现给图片打水印的方法


时间:2021-12-08 14:47 作者:admin610456


本文实例讲述了python/' target='_blank'>python使用PIL模块实现给图片打水印的方法。分享给大家供大家参考。具体实现方法如下:

import Image, ImageEnhancedef reduce_opacity(im, opacity):  """Returns an image with reduced opacity."""  assert opacity >= 0 and opacity <= 1  if im.mode != 'RGBA':    im = im.convert('RGBA')  else:    im = im.copy()  alpha = im.split()[3]  alpha = ImageEnhance.Brightness(alpha).enhance(opacity)  im.putalpha(alpha)  return imdef watermark(im, mark, position, opacity=1):  """Adds a watermark to an image."""  if opacity < 1:    mark = reduce_opacity(mark, opacity)  if im.mode != 'RGBA':    im = im.convert('RGBA')  # create a transparent layer the size of the image and draw the  # watermark in that layer.  layer = Image.new('RGBA', im.size, (0,0,0,0))  if position == 'tile':    for y in range(0, im.size[1], mark.size[1]):      for x in range(0, im.size[0], mark.size[0]):        layer.paste(mark, (x, y))  elif position == 'scale':    # scale, but preserve the aspect ratio    ratio = min(      float(im.size[0]) / mark.size[0], float(im.size[1]) / mark.size[1])    w = int(mark.size[0] * ratio)    h = int(mark.size[1] * ratio)    mark = mark.resize((w, h))    layer.paste(mark, ((im.size[0] - w) / 2, (im.size[1] - h) / 2))  else:    layer.paste(mark, position)  # composite the watermark with the layer  return Image.composite(layer, im, layer)def test():  im = Image.open('test.png')  mark = Image.open('overlay.png')  watermark(im, mark, 'tile', 0.5).show()  watermark(im, mark, 'scale', 1.0).show()  watermark(im, mark, (100, 100), 0.5).show()if __name__ == '__main__':  test()

希望本文所述对大家的Python程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)