在C#中将图像转换为WPF中的位图图像 [英] Convert image to Bitmap Image in WPF in C#

查看:62
本文介绍了在C#中将图像转换为WPF中的位图图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将图像转换为位图图像.
我正在使用Visual Studio 2010 C#(WPF).
我收到此错误

Convert image to Bitmap Image.
Am using visual studio 2010 c# (WPF).
I got this error

Can not implicitly convert System.Windows.Media.ImageSource to
System.Windows.Media.Imaging.BitmapImage.


如何将其转换为另一种类型.
帮助我


How to convert it to one type to other.
help me

推荐答案


如果您有一个字节数组表示WPF可以解码的文件(bmp,jpg,gif,png,tif,ico),则可以执行以下操作
Hi,
If you have a byte array that represents a file that WPF can decode (bmp, jpg, gif, png, tif, ico), you can do the following
BitmapSource LoadImage(Byte[] imageData)
{
    using (MemoryStream ms = new MemoryStream(imageData))
    {
        var decoder = BitmapDecoder.Create(ms,
            BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
        return decoder.Frames[0];
    }
}


以下文章包含有关将ImageSource转换为BitmapImage和Bitmap的有用信息:
http://stackoverflow.com/questions/920517/convert-imagesource-to-bitmapimage-wpf

http://stackoverflow.com/questions/4506692/how-to-convert-imagesource-到位图

这里还有一个使用第三方工具包的解决方案:
http://support.leadtools.com/CS/forums/41168/ShowPost.aspx
The following articles contain useful information about converting ImageSource to BitmapImage and Bitmap:
http://stackoverflow.com/questions/920517/convert-imagesource-to-bitmapimage-wpf

http://stackoverflow.com/questions/4506692/how-to-convert-imagesource-to-bitmap

There''s also a solution that uses a third party toolkit here:
http://support.leadtools.com/CS/forums/41168/ShowPost.aspx


电话:富文本框
单击按钮时,我正在使用富文本框创建一个位图,然后将其置于与Telep相同的位置,但在其上方.然后我终于使它成为水平镜像.

Telep: a rich text box
On a button click, I was taking the rich text box creating a bitmap, and then making it in the same location as telep, but above it. And then I finally made it mirrored horizontally.

public void pictureBox6_Click(object sender, EventArgs e)
        {            
            //Create a PictureBox with the same location and size as the RichTextBox.
            PictureBox pic = new PictureBox();
            pic.Location = this.telep.Location;
            pic.Size = this.telep.Size;

            //Draw the richTextBox to a bitmap
            Bitmap bitmap = new Bitmap(this.telep.Width, this.telep.Height);
            DrawToBitmap(this.telep, bitmap, new Rectangle(Point.Empty, this.telep.Size));
            bitmap.RotateFlip(RotateFlipType.RotateNoneFlipX);

            //Set the image of the PictureBox to that image.
            pic.Image = bitmap;
            this.Controls.Add(pic);
            pic.BringToFront();

            pic.Dock = DockStyle.Fill;
        }

        private void DrawToBitmap(RichTextBox richTextBox, Bitmap image, Rectangle targetRectangle)
        {
            
            Graphics g = telep.CreateGraphics();
            Graphics g2 = Graphics.FromImage(image);
            IntPtr gi = g.GetHdc();
            IntPtr gi2 = g2.GetHdc();
            BitBlt(gi2, 0, 0, richTextBox.Width, richTextBox.Height, gi, 0, 0, 0x00CC0020);
            g.ReleaseHdc();
            g2.ReleaseHdc();
            g.Dispose();
            g2.Dispose();

        }


这篇关于在C#中将图像转换为WPF中的位图图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆