我在 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 一起使用?
错误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) 我正在使用此方法在 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 上方的中心。我希望当我更改文本大小时,它会像现在一样保持在中心位置。
文本为红色,在本例中为希伯来语。