回覆列表
  • 1 # 使用者9616915052726

    我覺得就跟題主所說一樣,用photoshop一個一個畫素點出來,然後用對應的程式轉換出來。首先建立一個圖片,可以按照你想要的圖片進行直接的,每個畫素點的填充。這裡我就為了省事,直接建立了一張以字型填充的圖片:要求圖片大小不要太大。接著進行圖片到字元的轉換:拖進MATLAB效果就出來了。雖然和題主的要求不太一樣,但是經過稍微的修改就能達成題主的要求。-----------------------------------------------我是昏割線-----------------------------------------------------------原理其實很簡單,直接用matlab就能夠實現。首先,儲存在電腦上的圖片一般是儲存為RGB三色的幾張圖。可以看作是三張二維的表,每個表分別儲存每個畫素位置的R、G、B的值的大小。但是字元效果只能用黑-灰-白色的啊,那麼就需要將這張彩色照片轉換成灰度影象。不過一般電腦中使用的影象都是從黑到白分成256種,表示為0~255。比上圖分的更加仔細。在matlab中可以使用reb2gray將彩色的影象轉換為灰度影象。其轉換公式為:其中R、G、B為紅、綠、藍的色階,通常來說也是0~255的整數。(公式來自RGB2GRAY原理 - - 部落格頻道 - CSDN.NET)轉換完的影象就是灰度影象了,只剩下一張表了,就可以用字元的視覺灰度來進行逐個畫素的轉換了。這裡我使用以下的字符集:

    $@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`". 表示從黑到白的各種顏色。雖然不足255個,但是可以透過近似的方法來求,就是將灰度色階劃分為多個色段,依次對比,對號入座就可以了。接下來點點滑鼠就可以了,自動生成輸出的字元畫檔案。找個顯示等寬字型的文字編輯器就可以了。記事本就可以。不過我這裡使用的是notepad++。程式基礎的原理就是這樣。你甚至可以進行表情包的轉換。原圖:轉換圖(略大):(字元長度不夠,我把圖壓縮成原來的0.5倍,可能壓縮的太厲害了。。。。)甚至說是川普:脫下眼鏡更高畫質啊(技術處理過,不要吐槽):------------------------------------------------------我是昏割線-----------------------------------------------------------話說有個影片顯示解碼元件可以實現播放影片直接轉換成會動的字元畫:libcaca(cacalabs/libcaca)效果炸裂,可以脫下眼鏡觀看。(或直接下載mplayer 加選項-vo caca就可以實現這種炸裂的效果)原理很簡單,用matlab或者python都可以實現。不過我一個學光的,程式碼肯定是碼不好了。即使這樣,我寫matlab程式也只用了56行(用的內帶的函式,順手也實現了圖片的縮放)。題主完全可以自己試試看。話說我第一次寫這麼長的答案啊,紀念一下。

  • 中秋節和大豐收的關聯?
  • 煮飯時,用多少水合適?