用純C語言寫了一個將程式碼轉變為bmp影象的程式。讓我們來舉個例子
首先,隨便準備任意一份程式碼 (或者任意文字),我們以helloworld為例
將它儲存為hello.cpp
然後呼叫我寫的程式 bmp
會在同目錄下生成一個hello.cpp.bmp檔案
開啟它就可看到一張圖片
注意原bmp檔案很小(8px*5px),這是放大了30倍之後的效果。
看起來沒什麼特別的,不過如果用文字編輯器的方式開啟,就會發現文字是這樣的
哇除去檔案的頭部分,剩下的文字和原始碼一樣誒有木有!
什麼檔案都可以哦~
-----
17-4-6 更新
實現方法
總的來說,實現起來並不複雜,需要了解一些BMP檔案的格式即可 。可以這裡BMP file format - Wikipedia 瞭解BMP的檔案格式。檔案由三部分組成
其中BMP Header部分存有影象檔案的總大小,DIB Header部分存有影象的尺寸資訊,維護好這兩個資訊,塞到頭部分,整個程式就完成的差不多啦。
另外需要注意的一點是,如果影象寬度不是4的整數的話,插入Pixel Array時需要用額外的0x00作為padding填充到每一行,那麼在程式碼中會多出大量的空字元,因此處理時一定要讓寬度增加到4的整數倍,然後再用之前的方法算出高度即可。
程式碼已發GitHub: AnyCodeToBmp
用純C語言寫了一個將程式碼轉變為bmp影象的程式。讓我們來舉個例子
首先,隨便準備任意一份程式碼 (或者任意文字),我們以helloworld為例
將它儲存為hello.cpp
然後呼叫我寫的程式 bmp
會在同目錄下生成一個hello.cpp.bmp檔案
開啟它就可看到一張圖片
注意原bmp檔案很小(8px*5px),這是放大了30倍之後的效果。
看起來沒什麼特別的,不過如果用文字編輯器的方式開啟,就會發現文字是這樣的
哇除去檔案的頭部分,剩下的文字和原始碼一樣誒有木有!
什麼檔案都可以哦~
-----
17-4-6 更新
實現方法
總的來說,實現起來並不複雜,需要了解一些BMP檔案的格式即可 。可以這裡BMP file format - Wikipedia 瞭解BMP的檔案格式。檔案由三部分組成
BMP Header (14 Bytes)DIB Header (40 Bytes)Pixel Array其中BMP Header部分存有影象檔案的總大小,DIB Header部分存有影象的尺寸資訊,維護好這兩個資訊,塞到頭部分,整個程式就完成的差不多啦。
另外需要注意的一點是,如果影象寬度不是4的整數的話,插入Pixel Array時需要用額外的0x00作為padding填充到每一行,那麼在程式碼中會多出大量的空字元,因此處理時一定要讓寬度增加到4的整數倍,然後再用之前的方法算出高度即可。
程式碼已發GitHub: AnyCodeToBmp