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

Python基于pillow庫實現(xiàn)生成圖片水印

 更新時間:2020年09月14日 10:44:11   作者:冷冰若水  
這篇文章主要介紹了Python基于pillow庫實現(xiàn)生成圖片水印,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、背景

平時工作中經常需要使用各種尺寸、格式的圖片來做測試,每次從百度或者谷歌找圖都非常麻煩,于是就想作為一個程序員怎么能被這個問題影響效率呢,一切程序可以做的事情都應該用程勛來做并提升效率,這才是我們編程的意義所在。

二、實現(xiàn)

于是就想實現(xiàn)一個web版的圖片生成器,填顏色、尺寸、格式就可以生成指定的圖片,Python的圖像庫肯定首選pillow,實現(xiàn)起來很簡單,所以就不詳細解釋了,直接上代碼:

def generate_image(static_dir, image_type, width, height, color):
  print(static_dir, image_type, width, height, color)

  mode = 'RGB'
  width = int(width)
  height = int(height)
  color_tuple = ImageColor.getcolor(color, mode)

  image = Image.new(mode, (width, height), color_tuple)

  image_dir = os.path.join(static_dir, 'image')
  image_name = '%sx%s_%s.%s' % (width, height, int(time.time()), image_type)
  image_path = os.path.join(image_dir, image_name)

  font = ImageFont.truetype('./font/consola.ttf', 96)
  draw = ImageDraw.Draw(image)
  mark_content = '{width}x{height}'.format(width=width, height=height)
  for i, ch in enumerate(mark_content):
    draw.text((60*i + 10, 10), ch, font=font, fill=rndColor())

  image.save(image_path)

  print('image_path:%s' % (image_path))
  return image_path

這個就是核心的生成圖片的邏輯,其中稍微費了點時間的是水印的生成,這里添加水印的用意是為了在圖片上顯示圖片的尺寸,方便使用者直觀的看到該圖片的尺寸,其中需要使用到ImageDraw.text()方法,這里需要注意的是要根據你的字體大小設置合適的字間距,我是通過多次調整嘗試的,最終得到一個自己滿意的效果。

另外,關于字體名字,默認在不同平臺下會去不同的目錄查找該名字的字體,Windows下是在c://windows/fonts/目錄下,Linux是在/usr/share/fonts目錄下,這里為了避免后續(xù)部署時不同電腦上字體不同導致的問題,我直接把字體文件放在代碼庫中了,所以使用的是一個相對路徑。

三、預覽

如果想要預覽效果的,可以訪問這里:https://nicolerobin.top/image_holder/static/index.html

代碼庫地址:https://github.com/NicoleRobin/image_holder

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python實現(xiàn)人機猜拳小游戲

    python實現(xiàn)人機猜拳小游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)人機猜拳小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python列表轉換為Excel表格第一列的方法詳解

    Python列表轉換為Excel表格第一列的方法詳解

    在數(shù)據處理和分析的過程中,我們經常需要將Python中的數(shù)據結構(如列表)導出到Excel表格中,本文為大家整理了Python列表轉換為Excel表格第一列的幾種方法,希望對大家有所幫助
    2024-11-11
  • Python入門教程(三十六)Python的文件寫入

    Python入門教程(三十六)Python的文件寫入

    這篇文章主要介紹了Python入門教程(三十六)Python的文件寫入,open()函數(shù)可以打開一個文件供讀取或寫入,如果這個函數(shù)執(zhí)行成功,會回傳文件對象,需要的朋友可以參考下
    2023-05-05
  • Python matplotlib繪制餅狀圖功能示例

    Python matplotlib繪制餅狀圖功能示例

    這篇文章主要介紹了Python matplotlib繪制餅狀圖功能,結合實例形式分析了Python使用matplotlib模塊進行數(shù)值運算與餅狀圖繪制相關操作技巧,需要的朋友可以參考下
    2019-09-09
  • python-tornado的接口用swagger進行包裝的實例

    python-tornado的接口用swagger進行包裝的實例

    今天小編就為大家分享一篇python-tornado的接口用swagger進行包裝的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python超詳細分步解析隨機漫步

    Python超詳細分步解析隨機漫步

    隨機游走(random walk)也稱隨機漫步,隨機行走等是指基于過去的表現(xiàn),無法預測將來的發(fā)展步驟和方向。核心是指任何無規(guī)則行走者所帶的守恒量都各自對應著一個擴散運輸定律,接近布朗運動,現(xiàn)階段主要應用于互聯(lián)網鏈接分析及金融股票市場中
    2022-03-03
  • Python: tkinter窗口屏幕居中,設置窗口最大,最小尺寸實例

    Python: tkinter窗口屏幕居中,設置窗口最大,最小尺寸實例

    這篇文章主要介紹了Python: tkinter窗口屏幕居中,設置窗口最大,最小尺寸實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python中encode()方法的使用簡介

    Python中encode()方法的使用簡介

    這篇文章主要介紹了Python中encode()方法的使用簡介,是Python入門中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • scrapy爬蟲部署服務器的方法步驟

    scrapy爬蟲部署服務器的方法步驟

    本文主要介紹了scrapy爬蟲部署服務器的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • pycharm創(chuàng)建django項目出現(xiàn)路徑錯誤問題

    pycharm創(chuàng)建django項目出現(xiàn)路徑錯誤問題

    在PyCharm中創(chuàng)建Django項目時,若使用之前項目的環(huán)境編譯器,且已修改其根目錄,則新建項目路徑可能出錯。解決辦法是在設置中選擇Project,通過齒輪圖標進入Show?All,選擇編譯器路徑,點擊筆形圖修改Development?configuration的Root?path為/,以確保新項目能正確創(chuàng)建
    2024-09-09

最新評論

呼玛县| 台山市| 澎湖县| 江达县| 平舆县| 上林县| 龙岩市| 奉节县| 拜城县| 循化| 开阳县| 宽甸| 赣州市| 本溪市| 新宾| 新干县| 论坛| 托克托县| 南城县| 湘阴县| 新巴尔虎左旗| 白山市| 昌平区| 清涧县| 元谋县| 柘荣县| 永昌县| 福州市| 洞头县| 奉节县| 微博| 墨玉县| 濉溪县| 冕宁县| 武胜县| 和田市| 丹东市| 平阳县| 利辛县| 平潭县| 桐乡市|