我的目標是在Windows Mobile設備上使用相機拍攝一張照片,並將該圖像轉換爲單色位圖,以便它可以使用藍牙打印機在藍牙打印機上打印。 .NET Compact Framework。我發現我在這裏尋找答案:在.NET Compact Framework上將位圖轉換爲單色後的純黑色圖像
Convert image to 1 bpp bitmap in .net compact framework
當我加入這個代碼,並與我拿着攝像機的圖像(.JPG文件大小約爲300K)測試,我通過了圖像進入代碼來自上面的stackoverflow解決方案中的代碼,並且完成時沒有錯誤。查看位圖時,它是純黑色的圖像。
傳遞到代碼中的原始位圖是否需要某個分辨率或是否存在其他限制?用相機拍攝的原始圖像是黑色和白色開始。
原始圖像實際上是黑白的,還是灰度?因爲它可能會將任何顏色的東西都當作黑色處理,只有純白色的處理纔是白色的。 – 2012-07-12 18:24:50
是的,這是我的猜測,它實際上是一個「彩色」圖像,可能不包含單個白色像素,但我認爲它應該將任何圖像轉換爲單色。 – 2012-07-12 18:39:53
如果這是真的,我認爲你必須在1BPP DeviceContext上執行'DrawImage'之前先根據閾值手動擦洗圖像。 [Bitmap.LockBits](http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx),然後遍歷每個像素並將其設置爲白色或黑色可能是唯一的方法。你必須決定在哪一點像素有足夠的顏色稱之爲黑色。 – 2012-07-12 18:50:21