如何将位图转换为内存流

本文关键字:内存 转换 位图 | 更新日期: 2023-09-27 18:25:42

我在form1构造函数中有一个代码:

ConvertedBmp = ConvertTo24(newest.FullName);

ConvertTo24的功能是:

private static Bitmap ConvertTo24(string inputFileName)
        {
            sw = Stopwatch.StartNew();
            Bitmap bmpIn = (Bitmap)Bitmap.FromFile(inputFileName);
            Bitmap converted = new Bitmap(bmpIn.Width, bmpIn.Height, PixelFormat.Format24bppRgb);
            using (Graphics g = Graphics.FromImage(converted))
            {
                g.PageUnit = GraphicsUnit.Pixel;
                g.DrawImageUnscaled(bmpIn, 0, 0);
            }
            sw.Stop();
            return converted;
        }

问题是我如何在以下行中使用ConvertedMP:

backTexture = TextureLoader.FromFile(D3Ddev, @"D:'test.bmp");

TextureLoader有一些属性,其中两个是:Fromfile,它正在获取设备和字符串,或者FromStream,它正在获得设备和流。

我已经有了设备对象,但如何将ConvertedMP(位图类型)与TextureLoader一起使用?

如何将位图转换为内存流

Bitmap类有一个名为Save()的方法,它接受Stream(例如MemoryStream对象)和ImageFormat。将位图保存到MemoryStream后,您可以将其与TextureLoader一起使用。

Image.Save方法(流,ImageFormat)

我从这里得到以下代码:http://www.java2s.com/example/csharp/system.drawing/bitmap-to-memory-stream.html

public static MemoryStream ToMemoryStream(this Bitmap b)
        {
            MemoryStream ms = new MemoryStream();
            b.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            return ms;
        }

为我的需要工作