您可以使用WriteableBitmap
和操縱它的像素數據unsafe
方式,像here。
然後你可以使用
public static void ToSepia(this WriteableBitmap wrb)
{
// ForEach...
// (...ForEach(this WriteableBitmap bmp, Func<int, int, Color, Color> func)...)
//
wrb.ForEach((x, y, c) =>
{
// Convert color to grayscale.
byte grayScale = (byte)((c.R * .3) + (c.G * .59) + (c.B * .11));
// Init new color with taking same alpha.
Color newColor = Color.FromArgb(c.A, grayScale, grayScale, grayScale);
// Apply sepia and return new color.
return new Color()
{
R = (byte)(newColor.R * 1),
G = (byte)(newColor.G * 0.95),
B = (byte)(newColor.B * 0.82),
};
});
}
這裏是一個SL助手庫,但最近一個WPF版本也做了(請在源控制分支)。 http://writeablebitmapex.codeplex.com/
你可以使用着色器很容易地做到這一點:[着色器庫](http://perspectivefx.codeplex.com/) – MyKuLLSKI 2012-02-09 17:38:18
我想使用該按鈕來捕捉具有棕褐色效果的照片並將其保存到位置。我應該添加什麼? – mmmitchell 2012-02-16 15:55:51
蘋果從圖書館到照片的棕褐色陰影 – MyKuLLSKI 2012-02-16 16:56:37