首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows phone中的WriteableBitmapEx错误

windows phone中的WriteableBitmapEx错误
EN

Stack Overflow用户
提问于 2012-06-25 21:30:36
回答 1查看 299关注 0票数 0

嗨,我试着在windows phone中使用WriteableBitmapEx,但是代码不是working...what,我做错了吗?

代码语言:javascript
复制
        double height = image1.ActualHeight;
        double width = image1.ActualWidth;
        BitmapImage img = new BitmapImage(new Uri("Tulips.png", UriKind.RelativeOrAbsolute));
        BitmapImage newImg = image1.Source as BitmapImage;

        for (int i = 0; i < height; i++)
        {
            for (int j = 0; j < width; j++)
            {

                int grayScale = (int)((image1.writeableBmp.GetPixel(j, i).R * 0.3) + (image1.writeableBmp.GetPixel(j, i).G * 0.59) + (image1.GetPixel(j, i).B * 0.11));
                Color nc = Color.FromArgb (grayScale, grayScale, grayScale);
                newImg.SetPixel(j, i, nc);

            }
        }
EN

回答 1

Stack Overflow用户

发布于 2012-06-25 22:06:14

您正在尝试修改BitmapImage (newImg)。您必须创建一个WriteableBitmap

代码语言:javascript
复制
var newImg = new WriteableBitmap(image1.Source);

以便能够在之后修改位图图像。

然后(如果引用的是WriteableBitmapEx)应该能够直接从newImg获得grayScale表达式中的像素值

代码语言:javascript
复制
byte grayScale = Convert.ToByte((newImg.GetPixel(j, i).R * 0.3) + 
    (newImg.GetPixel(j, i).G * 0.59) + (newImg.GetPixel(j, i).B * 0.11));

然后还有一个Color.FromArgb语句,应该看起来像这样:

代码语言:javascript
复制
Color nc = Color.FromArgb (255, grayScale, grayScale, grayScale);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11190323

复制
相关文章

相似问题

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