2009-08-14 31 views
1

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

私のコンテンツは無関係です。それは白く空でもあります。重要なことは次元です。

Windows APIを使用する方法は?

.NETで
+2

どのようなlangugageですか? – smok1

+0

Windows APIでやってみたいです...それでは本当に関係ありません。 VB6、C++、 –

答えて

0

することができますアップBitmapオブジェクトちょうど新しい:あなたは、WindowsのAPIを使用してビットマップファイルを作成したい

Image myImage = new Bitmap(width, height); 
+0

を選択してください。.NETは選択肢ではありません.Windows APIのみを使用しています。 –

2

?これには特別な助けはありません。 BMPファイルは非常にシンプルです:

  • BITMAPFILEHEADER構造体を書き出してください。
  • BITMAPINFO構造体を書き出してください。
  • BITMAPINFO構造体に記述されている書式と寸法を保持するのに十分なバイト配列を書き出します。

MSDNにはArticleというサンプルコードが記載されています。

0

あなたは本当にあなたが

DllImport["Gdi32.dll"]
で外部メソッドを使用できるように、ちょうど、あなたのアセンブリに

インポートdllファイルを呼び出すC#ではGDI32.DLL を使用する必要があり、WindowsのAPIで画像を作ることに主張する場合その後

HBITMAP CreateCompatibleBitmap(
    HDC hdc, 
    int nWidth, 
    int nHeight 
);


Bitmap bmp = Bitmap.FromHbitmap(nameOfBitmap); 
bmp.Save("C:\NewImage.jpg");
のように、このビットマップからBitmapクラスを呼び出します

msdnページに例があります。here

+0

どうしたら彼の問題を解決できますか?彼はそのようにBMPファイルを保存することはできません。 – Niki

+0

この問題ではビットマップを作成することは重要ではありません。 – Myra

0

GDI +には、C++でBMPイメージを読み込み/保存するコマンドが含まれています。このサンプルコードは、画像をロードして保存する方法を示しています。Converting a BMP Image to a PNG Image。 Bitmapクラスには、空のイメージを作成するための幅、高さ、ピクセル形式をとるctorもあります。

0

Microsoft .NET Framework 2.0がインストールされているとします。 (1.1も使用可能)。このコードでtest.csファイルを作成し、メモ帳を使用して

:テキストを実行し

をtest.cmdの実行

@echo off 
%windir%\Microsoft.NET\Framework\v2.0.50727\csc.exe /t:exe 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のファイルを作成します.exe

関連する問題