2

X の高さと Y の幅がランダムなビットマップ ファイルをプログラムで作成したいと思います。

内容は、私にとっては無関係です。それはすべて白く、空である可能性があります。重要なのは寸法です。

Windows API を使用してそれを行うには?

4

5 に答える 5

2

Windows APIを使用してビットマップファイルを作成しますか?これには特定のヘルパーはありません。ただし、BMPファイルは非常に単純です。

  • 構造体を書きBITMAPFILEHEADERます。
  • 構造体を書きBITMAPINFOます。
  • 構造体で記述された形式と次元を保持するのに十分なバイトの配列をBITMAPINFO書き出します。

MSDNには、その方法を示すサンプルコードを含む記事があります。

于 2009-08-14T11:50:06.903 に答える
1

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 を実行

text.exe を実行

于 2009-08-14T13:43:41.077 に答える
0

.Netでは、ビットマップオブジェクトを新しくすることができます。

Image myImage = new Bitmap(width, height);
于 2009-08-14T11:46:37.427 に答える
0

Windows APIを使用してイメージを作成することを本当に主張する場合は、Gdi32.dllを使用する必要があります。C#では、

dllファイルをアセンブリにインポートして、で外部メソッドを使用できるようにします

DllImport ["Gdi32.dll"]
HBITMAP CreateCompatibleBitmap(
  HDC hdc、
  int nWidth、
  int nHeight
);

次に、このビットマップから次のようにビットマップクラスを呼び出します。

ビットマップbmp=Bitmap.FromHbitmap(nameOfBitmap);
bmp.Save( "C:\ NewImage.jpg");

ここのmsdnページに例があります

于 2009-08-14T11:53:48.193 に答える
0

GDI+ には、C++ で BMP 画像をロード/保存するコマンドが含まれています。次のサンプル コードは、画像をロードして保存する方法を示しています: BMP 画像を PNG 画像に変換する。Bitmap クラスには、幅、高さ、およびピクセル形式を使用して空のイメージを作成するctorもあります。

于 2009-08-14T12:05:05.580 に答える