首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将照片处理为深褐色

将照片处理为深褐色
EN

Stack Overflow用户
提问于 2012-02-10 00:37:31
回答 1查看 793关注 0票数 0

单击该按钮后,如何将照片处理为深褐色。

下面是我的代码:

代码语言:javascript
复制
private void button1_Click(object sender, RoutedEventArgs e)
{
    BitmapSource image = (BitmapSource)video.Source;
    image.Save(DateTime.Now.ToString("ddMMyyyy HHmmss") + ".jpg", ImageFormat.Jpeg);
    MessageBox.Show("Saved on bin/debug");
}
EN

回答 1

Stack Overflow用户

发布于 2012-02-10 23:26:41

您可以使用WriteableBitmap并以unsafe方式操作它的像素数据,就像here一样。

然后你就可以使用

代码语言:javascript
复制
    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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9214898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档