2009-02-24 85 views
2

在我開始之前,我正在使用C#。我想用ColorMatrix類做一些變換。問題是有時r,g或b發生溢出。代替將值限制在255,矩陣循環並從0開始。這意味着,對於應呈現全白色的圖像,它們會再次變黑。我正在使用它來模擬線掃描相機的不同線速度的強度。有誰知道一種方法來解決這個問題?如何處理ColorMatrix溢出?

順便說一句,我確實有其他的方法,我可以做矩陣轉換我自己,但我更感興趣的解決方案這個具體問題(如果有一個當然)。

回答

2

我也遇到過這個問題,如果有人知道修補程序會很好。我使出醜陋的變通辦法,如:(我一起乘了很多ColorMatrixes,並與這些東西到底結束)

 float[][] matrixContrastFix = 
     { 
      new float[] { 1,  0,  0, 0, 0}, 
      new float[] { 0,  1,  0, 0, 0}, 
      new float[] { 0,  0,  1, 0, 0}, 
      new float[] { 0,  0,  0, 1, 0}, 
      new float[] {-.05f, -.05f, -.05f, 0, 1} 
     }; 

但是,當我想你的其他意思方法,使用.LockBits並自己動手可能會更好。

希望你得到比我更好的答案!

+0

是的,我決定自己掃描內存。謝謝。 – 2009-02-24 18:44:30