我想在我的應用程序中實現Photoshop風格的顏色過濾功能。我有一個位圖,和4個複選框(R,G,B,A)。我想知道是什麼做在C#中實現顏色過濾
目前我如下
Byte[] rgbValues = new Byte[data.Stride * data.Height];
for (int row = 0; row < data.Height; row++)
{
// Loop through each pixel on this scan line
int bufPos = (m_height - row - 1) * m_width;
int index = row * data.Stride;
for (int col = 0; col < data.Width; col++, bufPos++, index += 4)
{
bool drawCheckerBoard = true; // for alpha
UInt32 rgba = m_image[bufPos];
UInt32 r = EnableRedChannel ? ((rgba >> 0) & 0xFF) : 0x00;
UInt32 g = EnableGreenChannel ? ((rgba >> 8) & 0xFF) : 0x00;
UInt32 b = EnableBlueChannel ? ((rgba >> 16) & 0xFF) : 0x00;
UInt32 a = (rgba >> 24) & 0xFF;
...
...
}
}
,然後通常Marshal.Copy和解鎖位等做它的最快的方法...
正如你可以看到它不是一個真正優化的方式,我想要一些更快的方法的建議。
感謝
它真的很慢嗎? – 2010-03-04 04:54:53