最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用PIL模塊實現(xiàn)給圖片打水印的方法

 更新時間:2015年05月22日 09:50:59   作者:皮蛋  
這篇文章主要介紹了python使用PIL模塊實現(xiàn)給圖片打水印的方法,涉及使用PIL模塊操作圖片的相關技巧,需要的朋友可以參考下

本文實例講述了python使用PIL模塊實現(xiàn)給圖片打水印的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

import Image, ImageEnhance
def 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 im
def 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程序設計有所幫助。

相關文章

  • PyTorch中grid_sample的使用及說明

    PyTorch中grid_sample的使用及說明

    這篇文章主要介紹了PyTorch中grid_sample的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python機器學習入門(四)之Python選擇模型

    Python機器學習入門(四)之Python選擇模型

    這篇文章主要介紹了Python機器學習入門知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • python 實現(xiàn)邏輯回歸

    python 實現(xiàn)邏輯回歸

    這篇文章主要介紹了python 實現(xiàn)邏輯回歸的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python?如何去除字符串中指定字符

    python?如何去除字符串中指定字符

    python中的strip()可以去除頭尾指定字符,只能刪除頭尾指定字符,想要去除中間字符,可以使用replace()函數(shù),本文結合示例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2022-12-12
  • Python腳本完成post接口測試的實例

    Python腳本完成post接口測試的實例

    今天小編就為大家分享一篇Python腳本完成post接口測試的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python爬蟲防封ip的一些技巧

    Python爬蟲防封ip的一些技巧

    這篇文章主要介紹了Python爬蟲防封ip的一些技巧,對平時學習爬蟲有所幫助,感興趣的朋友可以了解下
    2020-08-08
  • Pycharm無法使用已經(jīng)安裝Selenium的解決方法

    Pycharm無法使用已經(jīng)安裝Selenium的解決方法

    今天小編就為大家分享一篇Pycharm無法使用已經(jīng)安裝Selenium的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python爬蟲代理池搭建的方法步驟

    Python爬蟲代理池搭建的方法步驟

    這篇文章主要介紹了Python爬蟲代理池搭建的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Django 用戶登陸訪問限制實例 @login_required

    Django 用戶登陸訪問限制實例 @login_required

    這篇文章主要介紹了Django 用戶登陸訪問限制實例 @login_required,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 淺談python條件表達式:多項分支,雙向分支

    淺談python條件表達式:多項分支,雙向分支

    這篇文章主要介紹了淺談python條件表達式:多項分支,雙向分支的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

象州县| 霞浦县| 广平县| 甘孜| 南丹县| 栾城县| 陆川县| 宁远县| 迁西县| 临沭县| 长葛市| 福清市| 凤阳县| 车险| 昭苏县| 澎湖县| 靖边县| 建水县| 安仁县| 榆社县| 工布江达县| 大石桥市| 保亭| 比如县| 噶尔县| 衡山县| 阜新| 兰考县| 张掖市| 荆门市| 武威市| 蒙城县| 元氏县| 东至县| 江安县| 容城县| 楚雄市| 米泉市| 富裕县| 抚州市| 绥江县|