又有時間寫東西了,最近深感世事並不以人的美好願望而改變,還是要以積極地心態來適應新變化,多多關心身邊的人。 圖釘畫中一個圖釘代表一個像素,所以關鍵在於像素渣化,降低解析度,圖釘的色彩有限,還需要降低圖片的色彩數量,統計各種色彩的數量及位置。 以上都可以用Pillow完成,Pillow是Python中 ...
又有時間寫東西了,最近深感世事並不以人的美好願望而改變,還是要以積極地心態來適應新變化,多多關心身邊的人。
圖釘畫中一個圖釘代表一個像素,所以關鍵在於像素渣化,降低解析度,圖釘的色彩有限,還需要降低圖片的色彩數量,統計各種色彩的數量及位置。
以上都可以用Pillow完成,Pillow是Python中用來相容或者代替PIL的圖像處理庫。
pip install pillow
以下圖為例:
首先降解析度,大概1萬個圖釘可以達到較好的外觀效果,以此可以確定圖片的長寬:
>>> from PIL import Image >>> img = Image.open('20180707.jpg') >>> print img.size (512, 512) >>> img = img.resize((img.width/5, img.height/5)) >>> img.save('target.jpg')
效果如下:
渣化很明顯了,放大後可以看到一個個的像素格子。
轉成32色:
>>> img = Image.open('e:/target.jpg') >>> img = img.convert('P', colors=32, palette=1) >>> img.save('e:/32_target.jpg')
統計色彩數量:
>>> img = Image.open('e:/32_target.png') >>> print img.getcolors() [(332, 0), (416, 1), (253, 2), (359, 3), (292, 4), (335, 5), (435, 6), (231, 7), (404, 8), (218, 9), (377, 10), (268, 11), (467, 12), (303, 13), (256, 14), (255, 15), (455, 16), (391, 17), (241, 18), (368, 19), (244, 20), (470, 21), (266, 22), (215, 23), (397, 24), (276, 25), (285, 26), (308, 27), (352, 28), (400, 29), (295, 30), (240, 31)]
可以看到從0號-31號色的數量,
不清楚顏色的話,可以轉化成RGB模式:
>>> img = img.convert('RGB') >>> print img.getcolors() [(253, (240, 173, 157)), (292, (236, 151, 129))...]
就可以根據RGB去對比顏色買圖釘了。
確定每個位置的顏色:
>>> px = img.load() >>> for x in xrange(102): for y in xrange(102): print px[x, y]
然後就要對比顏色買圖釘,買相框,買紙板,買圖紙,標記位置,列印等等。
考慮到以上一切,我還是決定某寶了。學以致用難啊。
一萬多個圖釘,斷斷續續做了大概一個月,做完的感想是絕對不要做第二次,所以要做的同志請慎重。
當然做完成品還是不錯的。