為了要利用 BCB TMemoryStream 製作出含有 BMP 格式的圖檔串流,我就得把我的 row data [註1] 做一次重排,因為 BMP 對於圖檔像素的擺放依序是「左下->右上、BGR」。這也使得,如果計算擺放位置的時 index 差了一個,甚至差了幾個位置,就會導致圖片顏色錯誤,甚至內容斜一邊,如以下連結:
文字斜取 黑白文字出現黃藍邊緣
顏色錯誤 顏色正確 圖形黑色邊緣出現黃藍邊
如果把失敗的圖片利用 photoshop 放大來看,就會發現白底黑字的文字部分,其實文字邊緣都有黃色和藍色線條,這就是因為錯位造成的,例如:
... 00 00 00 ff ff ff ff ff ff 00 00 00 ... ===============> ... 00 00 00 ff ff ff ff ff ff 00 00 00 ...
黑色 白色 白色 黑色 算錯一個index 黃色邊緣 黑色 藍色邊緣
所以真的是斤斤計較,影像處理上須注意,當然啦,這是基本功。
文字斜取 黑白文字出現黃藍邊緣
顏色錯誤 顏色正確 圖形黑色邊緣出現黃藍邊
如果把失敗的圖片利用 photoshop 放大來看,就會發現白底黑字的文字部分,其實文字邊緣都有黃色和藍色線條,這就是因為錯位造成的,例如:
... 00 00 00 ff ff ff ff ff ff 00 00 00 ... ===============> ... 00 00 00 ff ff ff ff ff ff 00 00 00 ...
黑色 白色 白色 黑色 算錯一個index 黃色邊緣 黑色 藍色邊緣
所以真的是斤斤計較,影像處理上須注意,當然啦,這是基本功。
[註1] 擺放順序依序是圖片的「左上->右下、RGB」。
沒有留言:
張貼留言