小编Dan*_*out的帖子

如何将位图转换为内存流?

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

ConvertedBmp = ConvertTo24(newest.FullName);
Run Code Online (Sandbox Code Playgroud)

函数 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;
        }
Run Code Online (Sandbox Code Playgroud)

问题是我如何在这一行中使用 ConvertedBmp:

backTexture = TextureLoader.FromFile(D3Ddev, @"D:\test.bmp");
Run Code Online (Sandbox Code Playgroud)

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

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

.net c# winforms directx-9

6
推荐指数
1
解决办法
1万
查看次数

为什么我要使用form1扩展方法必须在非泛型静态类中定义?

错误1必须在非泛型静态类中定义扩展方法

这是form1 top声明的方式:

public partial class Form1 : Form
Run Code Online (Sandbox Code Playgroud)

然后我将一些变量声明为静态:

private static FileInfo newest;
private static Stream mymem;
private static Bitmap ConvertedBmp;
private static Stopwatch sw;
Run Code Online (Sandbox Code Playgroud)

我在form1构造函数中使用此变量:

ConvertedBmp = ConvertTo24(newest.FullName);
mymem = ToStream(ConvertedBmp, ImageFormat.Bmp);
Run Code Online (Sandbox Code Playgroud)

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;
        }
Run Code Online (Sandbox Code Playgroud)

和方法ToStream:

public Stream ToStream(this Image image, ImageFormat formaw) …
Run Code Online (Sandbox Code Playgroud)

.net c# winforms

3
推荐指数
1
解决办法
1576
查看次数

如何更改 Graphics DrawString 中的文本字体大小?

我正在使用此方法在 form1 上绘制文本:

private bool DrawText(bool draw, string texttodraw)
        {
            Graphics g = this.CreateGraphics();
            SizeF size = g.MeasureString(texttodraw, SystemFonts.DefaultFont,14);
            g.DrawString(texttodraw, Font, Brushes.Red, pictureBox1.Location.X + (pictureBox1.Width / 2) - (size.Width / 2),
                                                                    pictureBox1.Location.Y - 30);
            return draw;
        }
Run Code Online (Sandbox Code Playgroud)

我尝试在 SizeF 尺寸行上将宽度设置为 14,但它没有改变尺寸,它所做的唯一的事情就是从它的位置移动一点文本。

我如何更改文本的字体大小,并保持文本位置的视角(如果这是正确的词)?

这是完全不使用宽度 14 时的样子,文本位于 pictureBox1 上方的中心。我希望当我更改文本大小时,它会像现在一样保持在中心位置。

文本为红色,在本例中为希伯来语。

文本

.net c# winforms

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×3

c# ×3

winforms ×3

directx-9 ×1