摘要:文章鏈接關于圖片轉字符畫,相信大家都不陌生,經常出現在個超有趣的項目中。今天我也來實踐這個有趣的項目,更進一步的是把這個功能做成一個在線的網站,直接上傳圖片生成字符畫,在線預覽可以讓更多的人來體驗。至此,生成字符畫的腳本完成了。
文章鏈接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw
關于python圖片轉字符畫,相信大家都不陌生,經常出現在 n個超有趣的python項目中。
今天我也來實踐這個有趣的項目,更進一步的是把這個功能做成一個在線的網站,直接上傳圖片生成字符畫,在線預覽可以讓更多的人來體驗。
體驗網址:https://www.manjiexiang.cn/blog/post_img
舉個栗子,就是這是一張圖片
經過轉換成的字符畫是這樣的,這個txt的文件
代碼部分:
使用PIL處理圖片,resize方法轉成指定寬高
from PIL import Image im = Image.open("qq.png") im = im.resize((width, height), Image.NEAREST)
像素轉字符方法,將r,b,g轉化為灰度值,然后根據灰度值的大小確定所選字符在ascii_char中的位置。
def get_char(r, g, b, alpha=256): ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`". ") if alpha == 0: return " " length = len(ascii_char) gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (256.0 + 1) / length return ascii_char[int(gray / unit)]
處理圖片,遍歷圖片中的每一個像素,依次調用get_char方法即可得到每一個像素對應的字符,然后將這些字符組合起來即可得到所需的字符畫了,輸出到txt文件。
def draw(): im = Image.open("qq.png") im = im.resize((width, height), Image.NEAREST) txt = "" for i in range(height): for j in range(width): txt += get_char(*im.getpixel((j, i))) txt += " " with open("qq.txt", "w") as f: f.write(txt)
至此,生成字符畫的腳本完成了。
接下來就是運用到網站項目中,區別是圖片是上傳的,不是本地的路徑,這里采用的是django的項目,圖片上傳到項目里的路徑
media_root = os.path.join(settings.BASE_DIR, "upload/")
原本想將生成的txt文件下載下來的,發現下載的txt文件里面字符畫錯亂了,索性就重定向進行瀏覽,效果一樣。
設置的寬高可以修改生成字符畫的大小,即上面的width、height
網站地址:
https://www.manjiexiang.cn/blog/post_img
歡迎大家使用
腳本github地址:https://github.com/taixiang/py_draw
歡迎關注我的個人博客:https://www.manjiexiang.cn/
更多精彩歡迎關注微信號:春風十里不如認識你
一起學習,一起進步,歡迎上車,有問題隨時聯系,一起解決!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44795.html
本文關鍵闡述了運用Python實現圖片轉字符畫,要把圖片轉字符畫,必須要先界定1個字段名,用于和灰度級做投射,將照片每一個象素的RGB值轉化成1個灰度級,把它相對應的標識符導出就得到了字符畫 序言 相信大家在網上常常看到有些人展現出各種各樣字符畫,對于這些色彩斑斕的全球而言,我們平時看到的就是某些超清的彩色圖片,有時候再來一個粗糙黑白字符畫,還是比較緩解疲勞的。喜愛不要忘記個人收藏、關心、...
摘要:今天要介紹的是小程序的自定義組件,類似的在做開發的過程中會用到自定義,封裝成通用的組件可以在不同頁面里重復使用可以將復雜的頁面拆分成多個低耦合的模塊,便于代碼的維護。 文章鏈接:https://mp.weixin.qq.com/s/3xPnDwLsg7pHc_xAmS1DUQ 在前一篇文章 小程序使用之WXS中,介紹了關于 wxs 的使用,通過wxs處理數據再渲染到view層,可以簡...
摘要:今天要介紹的是小程序的自定義組件,類似的在做開發的過程中會用到自定義,封裝成通用的組件可以在不同頁面里重復使用可以將復雜的頁面拆分成多個低耦合的模塊,便于代碼的維護。 文章鏈接:https://mp.weixin.qq.com/s/3xPnDwLsg7pHc_xAmS1DUQ 在前一篇文章 小程序使用之WXS中,介紹了關于 wxs 的使用,通過wxs處理數據再渲染到view層,可以簡...
摘要:一幅圖像全部轉成字符序列后,就可以直接在控制臺輸出了。讀取視頻使用了,并直接用它提供的方法轉了灰度圖,在之前的文章中也有過介紹,計算機視覺開發利器這一步比較重要,因為有的視頻分辨率很高,直接一個像素轉一個字符的話量太大,所以先縮小圖片。 今天分享的這段代碼,看起來沒啥實際用處,而且有些反潮流,因為現如今大家看視頻都追求更高分辨率的超清畫質,而我們這個,是 一個超不清的視頻播放器 : 在...
摘要:灰度值的計算公式,由值計算閾值處理的方法實現閾值灰度計算公式去掉圖透明將圖像還原大小反鋸齒處理小圖經過放大默認是模糊的,將置為才能清晰顯示像素點。 2016 年快結束了,最后一天總要留下點什么。 showImg(https://segmentfault.com/img/remote/1460000008000019?w=798&h=525); 前段時間迷上像素畫,折騰了好一段時間,后來...
閱讀 637·2021-11-25 09:43
閱讀 1905·2021-11-17 09:33
閱讀 823·2021-09-07 09:58
閱讀 2061·2021-08-16 10:52
閱讀 481·2019-08-30 15:52
閱讀 1721·2019-08-30 15:43
閱讀 966·2019-08-30 15:43
閱讀 2921·2019-08-29 16:41