2009-08-14 15 views
1

Ich möchte programmgesteuert eine zufällige X-Höhe und Y-Bitmap-Datei erstellen.Wie programmiere ich eine Bitmap programmatisch?

Der Inhalt ist für mich irrelevant. Es könnte alles weiß sein, leer. Was wichtig ist, ist die Dimension.

Wie es mit Windows API zu tun?

+2

Welche Sprache? – smok1

+0

Ich möchte es mit Windows-API tun ... Dann ist es wirklich egal. VB6, C++, Sie wählen –

Antwort

0

In .Net können Sie einfach neu ein Bitmap-Objekt auf:

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

.NET ist keine Wahl, ich würde es nur mit der Windows-API tun –

2

Sie wünschen, eine Bitmap-Datei mit dem Windows-API erstellen? Es gibt keinen speziellen Helfer dafür. eine BMP-Datei ist jedoch sehr einfach:

  • Schreiben Sie eine BITMAPFILEHEADER struct.
  • Schreiben Sie eine BITMAPINFO struct.
  • Schreiben Sie ein Array von Bytes, genug, um das Format und die Dimensionen zu halten, die in der BITMAPINFO-Struktur beschrieben sind.

Die MSDN hat eine Article mit Beispielcode, der zeigt, wie.

0

Wenn Sie darauf bestehen, wirklich ein Bild mit Windows-API auf machen, sollten Sie Gdi32.dll In C# rufen Sie einfach

Import DLL-Datei in Ihrer Assembly verwenden, so dass Sie externe Methoden in

DllImport["Gdi32.dll"]
verwenden können
HBITMAP CreateCompatibleBitmap(
    HDC hdc, 
    int nWidth, 
    int nHeight 
);

Dann Bitmap-Klasse aus dieser Bitmap nennen wie

Bitmap bmp = Bitmap.FromHbitmap(nameOfBitmap); 
bmp.Save("C:\NewImage.jpg");

Es gibt ein Beispiel in Msdn Seite here

+0

Wie würde das sein Problem lösen? Er kann eine BMP-Datei nicht auf diese Weise speichern. – Niki

+0

Erstellen von Bitmap ist in dieser Frage wichtig, nicht zu speichern! – Myra

0

GDI + Befehle laden/speichern BMP-Bilder in C++ enthält. Dieser Beispielcode zeigt, wie Bilder geladen und gespeichert werden: Converting a BMP Image to a PNG Image. Die Bitmap-Klasse verfügt auch über eine ctor, die eine Breite, eine Höhe und ein Pixelformat verwendet, um leere Bilder zu erstellen.

0

Ich nehme an, Sie haben Microsoft .NET 2.0 Framework installiert. (1.1 ist auch verwendbar). Führen test.cmd

Execute

@echo off 
%windir%\Microsoft.NET\Framework\v2.0.50727\csc.exe /t:exe test.cs 

Text:

Mit dem Editor erstellen Test.cs Datei mit diesem Code:

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"); 
     } 
    } 
} 

Dann test.cmd Datei mit diesem Code erstellen .exe

Verwandte Themen