我想以编程方式创建一个随机的 X 高度和 Y 宽度位图文件。
对我来说,内容无关紧要。它可能全是白色的,空的。重要的是维度。
如何使用 Windows API 做到这一点?
您希望使用 Windows API 创建位图文件?没有专门的帮手。然而,一个 BMP 文件非常简单:
BITMAPFILEHEADER
结构。BITMAPINFO
结构。BITMAPINFO
结构中描述的格式和维度。MSDN 有一篇文章,其中包含演示如何的示例代码。
我想您已经安装了 Microsoft .NET 2.0 Framework。(1.1也可用)。
使用记事本,使用以下代码创建 test.cs 文件:
namespace test
{
class Program
{
static void Main(string[] args)
{
if (args.Length == 3)
new System.Drawing.Bitmap(System.Convert.ToInt32(args[0]), System.Convert.ToInt32(args[1]))
.Save(args[2] + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
else
System.Console.WriteLine("Usage: test.exe 100 200 filename");
}
}
}
然后使用以下代码创建 test.cmd 文件:
@echo off
%windir%\Microsoft.NET\Framework\v2.0.50727\csc.exe /t:exe test.cs
执行 test.cmd
执行文本.exe
如果你真的坚持用windows API制作图像,你应该使用Gdi32.dll在C#中调用
将 dll 文件导入您的程序集中,以便您可以使用外部方法
DllImport["Gdi32.dll"]
HBITMAP CreateCompatibleBitmap( HDC 硬盘, 整数宽度, 整数高度 );
然后从此 Bitmap 调用 Bitmap 类,如
位图 bmp = Bitmap.FromHbitmap(nameOfBitmap); bmp.Save("C:\NewImage.jpg");
msdn页面中有一个示例here
GDI+ 包括在 C++ 中加载/保存 BMP 图像的命令。此示例代码显示如何加载和保存图像:将 BMP 图像转换为 PNG 图像。Bitmap 类还有一个ctor,它采用宽度、高度和像素格式来创建空图像。
在 .Net 中,您可以新建一个 Bitmap 对象:
Image myImage = new Bitmap(width, height);