图像处理亮度

时间:2018-03-02 09:29:56

标签: c# wpf bitmap

我想更改图像的亮度值。 YouTube也有很多视频,但视频在c#中使用了picturebox。我想用wpf中的图像制作。但是wpf没有为image.source使用位图。需要BitmapImage。我尝试了一些东西,但没有工作。

亮度代码:

        public static Bitmap AdjustBrightness(Bitmap Image,int Value)
    {
        Bitmap TempBitmap = Image;
        float FinalValue = (float)Value / 255.0f;
        Bitmap NewBitmap = new Bitmap(TempBitmap.Width,TempBitmap.Height);
        Graphics NewGraphics = Graphics.FromImage(NewBitmap);

        float[][] FloatColorMatrix =
        {
            new float[] {1,0,0,0,0},
            new float[] {0,1,0,0,0},
            new float[] {0,0,1,0,0},
            new float[] {0,0,0,1,0},
            new float[] {FinalValue,FinalValue,FinalValue,1,1},
        };

        ColorMatrix NewColorMatrix = new ColorMatrix(FloatColorMatrix);
        ImageAttributes Attributes = new ImageAttributes();
        Attributes.SetColorMatrix(NewColorMatrix);
        NewGraphics.DrawImage(TempBitmap, new Rectangle(0, 0, TempBitmap.Width, TempBitmap.Height), 0, 0, TempBitmap.Width, TempBitmap.Height, GraphicsUnit.Pixel, Attributes);
        Attributes.Dispose();
        NewGraphics.Dispose();

        return NewBitmap;
    }

如果我尝试返回“无法将类型'System.Drawing.Bitmap'隐式转换为'System.Windows.Media.ImageSource'”:

img_goruntucontrol.Source = goruntu.AdjustBrightness(img_bitmap, Int32.Parse(slider_brig.Value.ToString()));

所以我使用位图来映射源:

        BitmapImage BitmapToImageSource(Bitmap bitmap)
    {
        using (MemoryStream memory = new MemoryStream())
        {
            bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp);
            memory.Position = 0;
            BitmapImage bitmapimage = new BitmapImage();
            bitmapimage.BeginInit();
            bitmapimage.StreamSource = memory;
            bitmapimage.CacheOption = BitmapCacheOption.OnLoad;
            bitmapimage.EndInit();

            return bitmapimage;
        }
    }

现在我尝试像这样的图像源:

img_goruntucontrol.Source = BitmapToImageSource(goruntu.AdjustBrightness(img_bitmap, Int32.Parse(slider_brig.Value.ToString())));

我的位图代码:Bitmap img_bitmap = new Bitmap(image_source); image_source是一个字符串值。

我尝试运行返回“不支持URI格式”。对于img_bitmap。

image_source值:"file:///C:/Users/kamilkunt/Documents/Dentatech/goruntuler/9/3512.jpg"

0 个答案:

没有答案