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

利用python編寫(xiě)一個(gè)圖片主色轉(zhuǎn)換的腳本

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

前言

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

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

本文就編寫(xiě)了一個(gè)批量替換圖片主色的腳本changeImageColor.py。

實(shí)現(xiàn)思路

      1.pip 安裝Pillow庫(kù)引入Image類

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

      3.獲取當(dāng)前目錄路徑,以及圖片文件

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

      5.獲取Image對(duì)象背景顏色rgba值

      6.遍歷Image對(duì)象所有像素點(diǎn)

      7.把不是背景像素點(diǎn)顏色替換為要轉(zhuǎn)換輸入顏色值

      8.保存Image對(duì)象到新目錄下面

代碼實(shí)現(xiàn)

from PIL import Image
import os
class ChangeImageColor(object):
  @classmethod
  def startHandle(self, rgb):
    # 獲取當(dāng)前路徑,并創(chuàng)建新目錄用于輸出結(jié)果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) # 當(dāng)前目錄路徑
      print('dirs: ', dirs) # 當(dāng)前路徑下所有子目錄
      print('files: ', files) # 當(dāng)前路徑下所有非目錄子文件      
      # 遍歷下所有圖片文件
      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每個(gè)像素
            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進(jìn)制轉(zhuǎn)換為rgb
  @classmethod
  def hex2rgb(self, hexcolor):
    rgb = ((hexcolor >> 16) & 0xff,
        (hexcolor >> 8) & 0xff,
        hexcolor & 0xff
        )
    return rgb
if __name__ == '__main__':
  hexColor = int(input('請(qǐng)輸入新16進(jìn)制顏色值:'), 16)
  ChangeImageColor.startHandle(ChangeImageColor.hex2rgb(hexColor))

演示

轉(zhuǎn)換結(jié)果result 目錄下就是轉(zhuǎn)換新圖片

python真的很不錯(cuò)^_^。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

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

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

    今天小編就為大家分享一篇python中計(jì)算一個(gè)列表中連續(xù)相同的元素個(gè)數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法

    python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法

    這篇文章主要介紹了python開(kāi)發(fā)之a(chǎn)naconda以及win7下安裝gensim的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • APIStar:一個(gè)專為Python3設(shè)計(jì)的API框架

    APIStar:一個(gè)專為Python3設(shè)計(jì)的API框架

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

    centos7中安裝python3.6.4的教程

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

    Python自動(dòng)化之?dāng)?shù)據(jù)驅(qū)動(dòng)讓你的腳本簡(jiǎn)潔10倍【推薦】

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

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

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

    python中可以聲明變量類型嗎

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

    python實(shí)現(xiàn)Thrift服務(wù)端的方法

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

    用python做個(gè)代碼版的小仙女蹦迪視頻

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

    解決pycharm臨時(shí)打包32位程序的問(wèn)題

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

最新評(píng)論

岑巩县| 双流县| 仁化县| 辽宁省| 中西区| 游戏| 石门县| 贵南县| 武宁县| 嘉祥县| 大英县| 鲁山县| 景谷| 甘孜县| 棋牌| 吉林省| 望谟县| 屏东县| 安徽省| 会理县| 尖扎县| 桐乡市| 白山市| 望江县| 邵武市| 怀宁县| 明光市| 乐陵市| 玉龙| 西盟| 两当县| 旌德县| 广汉市| 芜湖市| 和平区| 祥云县| 桂阳县| 临颍县| 山东| 小金县| 苏尼特右旗|