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

利用python編寫一個圖片主色轉換的腳本

 更新時間:2017年12月07日 08:40:28   作者:WHC  
這篇文章主要給大家介紹了關于利用python編寫一個圖片主色轉換腳本的相關資料,主要使用的是Python中的Pillow圖像處理庫,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。

前言

最近由于項目特需老是替換主題顏色,同時app里一些資源icon圖片主色也要改,美工不提供切圖只能靠自己了,開始想在iconfont上面找但是數(shù)量比較多太浪費時間,然后就想到python的Pillow在圖像處理方便很強大。

Pillow是Python里的圖像處理庫(PIL:Python Image Library),提供了了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉換以及基本的圖像處理操作等。

本文就編寫了一個批量替換圖片主色的腳本changeImageColor.py。

實現(xiàn)思路

      1.pip 安裝Pillow庫引入Image類

      2.在當前目錄下創(chuàng)建存放轉換后圖片目錄

      3.獲取當前目錄路徑,以及圖片文件

      4.遍歷所有圖片文件并創(chuàng)建對應Image對象

      5.獲取Image對象背景顏色rgba值

      6.遍歷Image對象所有像素點

      7.把不是背景像素點顏色替換為要轉換輸入顏色值

      8.保存Image對象到新目錄下面

代碼實現(xiàn)

from PIL import Image
import os
class ChangeImageColor(object):
  @classmethod
  def startHandle(self, rgb):
    # 獲取當前路徑,并創(chuàng)建新目錄用于輸出結果image
    path = os.getcwd() + '/images/res'
    npath = os.getcwd() + '/images/res/result/'
    if not os.path.exists(npath):
      os.makedirs(npath)
    else:
      # 如果存在相同新目錄那么刪除下面文件
      for root, dirs, files in os.walk(npath):
        for file_name in files:
          os.remove(npath + file_name)    
    # 新顏色值
    nr,ng,nb = rgb
    # 存放背景顏色
    br,bg,bb, ba = 0, 0, 0, 0
    # 遍歷目錄
    for root, dirs, files in os.walk(path):
      print('root: ', root) # 當前目錄路徑
      print('dirs: ', dirs) # 當前路徑下所有子目錄
      print('files: ', files) # 當前路徑下所有非目錄子文件      
      # 遍歷下所有圖片文件
      for file_name in files:
        if file_name != '.DS_Store':
          image = Image.open(root + '/' + file_name)
          if image is not None:
            image_width, image_height = image.size
            # 遍歷Image每個像素
            for i in range(image_width):
              for j in range(image_height):
                xy = (i,j)
                # 下面是獲取像素和比較像素
                color = image.getpixel(xy)
                color_num = len(color)
                # 判斷顏色是否有alpha值
                if color_num == 4:
                  r, g, b, a = color
                  if i == 0 and j == 0:
                    br, bg, bb, ba = color
                  if br != r or bg != g or bb != b:
                    # 替換像素并保留alpha值
                    image.putpixel(xy, (nr, ng, nb,a))
                elif color_num == 3:
                  r, g, b = color
                  if i == 0 and j == 0:
                    br, bg, bb = color
                  if br != r or bg != g or bb != b:                    image.putpixel(xy, (nr, ng, nb))

            image.save(npath + file_name)
  # 把16進制轉換為rgb
  @classmethod
  def hex2rgb(self, hexcolor):
    rgb = ((hexcolor >> 16) & 0xff,
        (hexcolor >> 8) & 0xff,
        hexcolor & 0xff
        )
    return rgb
if __name__ == '__main__':
  hexColor = int(input('請輸入新16進制顏色值:'), 16)
  ChangeImageColor.startHandle(ChangeImageColor.hex2rgb(hexColor))

演示

轉換結果result 目錄下就是轉換新圖片

python真的很不錯^_^。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • python中計算一個列表中連續(xù)相同的元素個數(shù)方法

    python中計算一個列表中連續(xù)相同的元素個數(shù)方法

    今天小編就為大家分享一篇python中計算一個列表中連續(xù)相同的元素個數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python開發(fā)之anaconda以及win7下安裝gensim的方法

    python開發(fā)之anaconda以及win7下安裝gensim的方法

    這篇文章主要介紹了python開發(fā)之anaconda以及win7下安裝gensim的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • APIStar:一個專為Python3設計的API框架

    APIStar:一個專為Python3設計的API框架

    今天小編就為大家分享一篇關于一個專為Python3設計的API框架:APIStar,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-09-09
  • centos7中安裝python3.6.4的教程

    centos7中安裝python3.6.4的教程

    Python3.6.4官方版是一款在適合開發(fā)人員使用的windows系統(tǒng)上運行的腳本語言工具,Python3.6.4官方版是目前程序設計從業(yè)者必學的語言之一。這篇文章給大家介紹了centos7中安裝python3.6.4的教程,感興趣的朋友一起看看吧
    2019-12-12
  • Python自動化之數(shù)據(jù)驅動讓你的腳本簡潔10倍【推薦】

    Python自動化之數(shù)據(jù)驅動讓你的腳本簡潔10倍【推薦】

    數(shù)據(jù)驅動是一種思想,讓數(shù)據(jù)和代碼進行分離。這篇文章主要介紹了Python自動化之數(shù)據(jù)驅動,讓你的腳本簡潔10倍,需要的朋友可以參考下
    2019-06-06
  • 精確查找PHP WEBSHELL木馬的方法(1)

    精確查找PHP WEBSHELL木馬的方法(1)

    今天,我想了下,現(xiàn)在把查找PHP WEBSHELL木馬思路發(fā)出來,需要的朋友可以參考下。
    2011-04-04
  • python中可以聲明變量類型嗎

    python中可以聲明變量類型嗎

    在本篇文章里小編給大家整理了關于python中聲明變量類型的相關知識點,需要的朋友們可以學習下。
    2020-06-06
  • python實現(xiàn)Thrift服務端的方法

    python實現(xiàn)Thrift服務端的方法

    這篇文章主要介紹了python實現(xiàn)Thrift服務端的方法,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-04-04
  • 用python做個代碼版的小仙女蹦迪視頻

    用python做個代碼版的小仙女蹦迪視頻

    這篇文章主要介紹了怎么樣用python做個代碼版的小仙女蹦迪視頻,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 解決pycharm臨時打包32位程序的問題

    解決pycharm臨時打包32位程序的問題

    這篇文章主要介紹了解決pycharm臨時打包32位程序的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04

最新評論

长武县| 连州市| 板桥市| 米林县| 章丘市| 九台市| 顺义区| 英吉沙县| 丽水市| 忻城县| 隆德县| 金坛市| 晋城| 怀来县| 容城县| 徐水县| 湄潭县| 安国市| 梓潼县| 江口县| 仁布县| 雅安市| 涞源县| 金山区| 商南县| 吉木萨尔县| 日照市| 交口县| 辰溪县| 政和县| 高唐县| 和平县| 合川市| 凌源市| 民勤县| 平昌县| 渝北区| 邻水| 新巴尔虎左旗| 金平| 竹北市|