程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 對索引像素格式的圖片進行Setpixel(具有索引像素格式的圖像不支持SetPixel解決方案),setpixel索引

對索引像素格式的圖片進行Setpixel(具有索引像素格式的圖像不支持SetPixel解決方案),setpixel索引

編輯:C#入門知識

對索引像素格式的圖片進行Setpixel(具有索引像素格式的圖像不支持SetPixel解決方案),setpixel索引


      最近編寫了一個驗證碼識別軟件。其中對png、jpg圖片進行二值化處理時,出現了錯誤:具有索引像素格式的圖像不支持SetPixel解決方案。從字面上來看,這說明我對一個具有索引色的圖片進行了直接RGB顏色設置,而索引色圖片的顏色來自調色板,所以這操作是非法的。看見網上的解決方法都不靠譜,特寫此文,以助新手。

      若是C++中,我會將調色板偏移分析,然後對顏色數組進行一下轉換。但是在功能強大的.Net中,顯然無需這麼做:Bitmap對象自帶Clone()函數。我只要Clone一個Bitmap對象,並將PixelFormat設置成無索引格式即可。對於我這個軟件,我使用的是Format24bppRgb格式(指定格式為每像素24位;紅色、綠色和藍色分量各使用8位)。

Bitmap img1 = new Bitmap(paths);
Bitmap imgtarget = img1.Clone(new Rectangle(0, 0, img1.Width, img1.Height),PixelFormat.Format24bppRgb);
//Do something.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved