用Excel表达图片如何由像素点构成
生活随笔
收集整理的這篇文章主要介紹了
用Excel表达图片如何由像素点构成
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0 寫在前面
對圖像入門一點,或者看過一些兒時低像素任天堂游戲的小伙伴們大概對像素點構成圖片有一定認知,本篇將用Excel來表達這一思路,如下原圖:
在Excel中可以表示如下:
可以看到這里將Excel中的每個格子當作一個像素點,每個格子里面是每個像素點的rgb值。具體如何做到見下文。
1 現將原始jpg轉成文本形式
為了方便就處理jpg格式的圖像,這里使用python語言,如下:
## 讀取圖像像素RGB值
from PIL import Image
imload= Image.open('test.jpg')
im=imload.convert("RGB")
width,height=im.size
demo=open('rgb.txt','a')
for y in range(height):
for x in range(width):
rgb=im.getpixel((x,y))
rgb=str(rgb)
demo.write(rgb[1:-1]+" ")
demo.write("
")
demo.close()
將原始圖像改名為test.jpg再運行上述程序就會生成一個rgb.txt
2 使用Excel打開文本
將第一步生成的rgb.txt直接用Excel打開,打開時會彈出一些轉換事項,直接下一步即可,注意需要調整格子的大小使每個格子呈現正方形以便實現較好的效果,此處演示略。
3 使用VBA還原原始jpg
VBA就是Excel里面的宏,此時可以新建一個Set_RGB宏,復制以下代碼,注意更改最大列標,以及去掉"http://"在內的注釋,如下:
Sub Set_RGB()
Dim r As Range,arr
For Each r In Range("A:xxx") //xxx為最大列標,點擊一個格子然后ctrl+方向右鍵就能跳到最大列
arr = Split(R,",")
r.Interior.Color = RGB(CInt(arr(0)),CInt(arr(1)),CInt(arr(2)))
Next
End Sub
然后運行,可能會出現下標越界等情況,不用管它,直接回到excel就會發現已經生成,然后就能見到第0節中的效果,此時另存為Excel文件并保存宏就可以展現給別人看啦。
總結
以上是生活随笔為你收集整理的用Excel表达图片如何由像素点构成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之ADB常用命令
- 下一篇: 维数约减--Dimensionality