당신은 WriteableBitmap
을 사용하고 here 같은 unsafe
방법으로 픽셀 데이터의 조작 할 수 있습니다 :
다음은 내 코드입니다.
그럼 당신은 여기
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/
[Shader library] (http://perspectivefx.codeplex.com/) – MyKuLLSKI
세피아 효과로 사진을 캡처하고 위치에 저장하려면이 버튼을 사용하고 싶습니다. 나는 무엇을 추가해야합니까? – mmmitchell
애플 세피아 쉐이드 라이브러리에서 사진 – MyKuLLSKI