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

Python用61行代碼實現(xiàn)圖片像素化的示例代碼

 更新時間:2018年12月10日 11:21:37   作者:北方  
這篇文章主要介紹了Python用61行代碼實現(xiàn)圖片像素化的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

起因

看到網(wǎng)上的像素圖片,感覺蠻有趣的,就打算用python一些PIL類庫寫一個。

實現(xiàn)思路

把一張圖片分成多個塊,每個塊的顏色都等于這個色塊中顏色最多的顏色,如下圖。


這個圖取2×2的像素為塊的大小,把快中顏色與每個顏色出現(xiàn)的數(shù)量存放到字典里,取最大的顏色,填充整個塊。

具體實現(xiàn)

from PIL import Image

def init():
  # 設(shè)置每個像素區(qū)塊的大小
  block_size = 75
  img = Image.open("a.jpg")
  # 獲取圖片的寬高
  width, height = img.size
  # 獲取像素點對應RGB顏色值,可以改變img_array中的值來改變顏色值
  img_array = img.load()
  # 為了處理最后的區(qū)塊,加了一次循環(huán)
  max_width = width + block_size
  max_height = height + block_size
  for x in range(block_size - 1, max_width, block_size):
    for y in range(block_size - 1, max_height, block_size):
      # 如果是最后一次循環(huán),則x坐標等于width - 1
      if x == max_width - max_width % block_size - 1:
        x = width - 1
      # 如果是最后一次循環(huán),則x坐標等于height - 1
      if y == max_height - max_height % block_size - 1:
        y = height - 1
      # 改變每個區(qū)塊的顏色值
      change_block(x, y, block_size, img_array)
      y += block_size
    x += block_size
  img.save(r'D:\python\pixel_image\awesome_copy.png')
  img.show()

"""
:param x坐標 x: 
:param y坐標 y: 
:param 區(qū)塊大小 black_size: 
:param 可操作圖片數(shù)組 img_array: 
"""
def change_block(x, y, black_size, img_array):

  color_dist = {}
  block_pos_list = []
  for pos_x in range(-black_size + 1, 1):
    for pos_y in range(-black_size + 1, 1):
      # todo print(x + pos_x,y + pos_y)
      block_pos_list.append([x + pos_x, y + pos_y])
  for pixel in block_pos_list:
    if not str(img_array[pixel[0], pixel[1]]) in color_dist.keys():
      color_dist[str(img_array[pixel[0], pixel[1]])] = 1
    else:
      color_dist[str(img_array[pixel[0], pixel[1]])] += 1
  # key-->value => value-->key
  new_dict = {v: k for k, v in color_dist.items()}
  max_color = new_dict[max(color_dist.values())]
  # 將區(qū)塊內(nèi)所有的顏色值設(shè)置為顏色最多的顏色
  for a in block_pos_list:
    img_array[a[0], a[1]] = tuple(list(map(int, max_color[1:len(max_color) - 1].split(","))))


def get_key(dict, value):
  return [k for k, v in dict.items() if v == value]


if __name__ == "__main__":
  init()

效果對比


總結(jié)

開源地址https://github.com/MasakiOvO/pixel_image

還有很多改進的地方,比如取色值的算法上,應該有更好的解決方法,應該用多進程來實現(xiàn),這樣程序速度會快很多。OvO

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

相關(guān)文章

  • Python?Ast抽象語法樹的介紹及應用詳解

    Python?Ast抽象語法樹的介紹及應用詳解

    這篇文章主要為大家介紹了Python?Ast抽象語法樹的介紹及應用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Python 編碼Basic Auth使用方法簡單實例

    Python 編碼Basic Auth使用方法簡單實例

    這篇文章主要介紹了 Python 編碼Basic Auth使用方法簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 淺析Python實現(xiàn)DFA算法

    淺析Python實現(xiàn)DFA算法

    DFA全稱為Deterministic Finite Automaton,即確定有窮自動機。特征:有一個有限狀態(tài)集合和一些從一個狀態(tài)通向另一個狀態(tài)的邊,每條邊標記有一個符號,其中一個狀態(tài)是初態(tài),某些狀態(tài)是終態(tài)。不同于不確定的有限自動機,DFA中不會有從同一狀態(tài)出發(fā)的兩條邊標志有相同的符號
    2021-06-06
  • Python實現(xiàn)豆瓣圖片下載的方法

    Python實現(xiàn)豆瓣圖片下載的方法

    這篇文章主要介紹了Python實現(xiàn)豆瓣圖片下載的方法,涉及Python針對網(wǎng)頁操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • python查找指定具有相同內(nèi)容文件的方法

    python查找指定具有相同內(nèi)容文件的方法

    這篇文章主要介紹了python查找指定具有相同內(nèi)容文件的方法,涉及Python針對文件操作的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • pyqt5 使用label控件實時顯示時間的實例

    pyqt5 使用label控件實時顯示時間的實例

    今天小編就為大家分享一篇pyqt5 使用label控件實時顯示時間的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python之class類和方法的用法詳解

    python之class類和方法的用法詳解

    這篇文章主要介紹了python中class類和方法的用法詳解,如果有不太清楚面向?qū)ο蟮念惡头椒ǖ木幊趟枷氲男』锇榭梢越梃b參考本文
    2023-03-03
  • Python一步步帶你操作Excel

    Python一步步帶你操作Excel

    這篇文章主要介紹了Python編寫命令行腳本操作excel的方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • Python中的函數(shù)式編程:不可變的數(shù)據(jù)結(jié)構(gòu)

    Python中的函數(shù)式編程:不可變的數(shù)據(jù)結(jié)構(gòu)

    今天小編就為大家分享一篇關(guān)于Python中的函數(shù)式編程:不可變的數(shù)據(jù)結(jié)構(gòu),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Python為Excel單元格設(shè)置填充\背景色的操作方法(純色、漸變、圖案)

    Python為Excel單元格設(shè)置填充\背景色的操作方法(純色、漸變、圖案)

    在使用Excel進行數(shù)據(jù)處理和分析時,對特定單元格進行背景顏色填充不僅能夠提升工作表的視覺吸引力,還能幫助用戶快速識別和區(qū)分不同類別的數(shù)據(jù),本文將通過三個示例詳細介紹如何使用Python在Excel中設(shè)置不同的單元格背景,需要的朋友可以參考下
    2024-08-08

最新評論

张家口市| 湖州市| 宁安市| 佳木斯市| 吉隆县| 保靖县| 东台市| 逊克县| 阳朔县| 德格县| 边坝县| 肇东市| 锦州市| 苍南县| 望奎县| 涿鹿县| 荃湾区| 呼和浩特市| 伊金霍洛旗| 内江市| 江孜县| 铜梁县| 平南县| 德州市| 兴国县| 临猗县| 葵青区| 文安县| 墨竹工卡县| 永清县| 龙陵县| 庆城县| 巩义市| 延边| 拉孜县| 肥城市| 西丰县| 淮滨县| 塘沽区| 嘉祥县| 镇巴县|