Auf Bitmap zeichnen
-
Hallo,
hab mich an das hier gehalten (ganz unten):
http://forums.dreamincode.net/showtopic15072.htmRausgekommen ist dann das hier:
System::Drawing::Image ^ img = System::Drawing::Bitmap::FromFile("colourTable.png"); System::Drawing::Graphics ^ gr = System::Drawing::Graphics::FromImage(img); gr->DrawLine(gcnew System::Drawing::Pen(System::Drawing::Color::Black), 0, 0, 20, 20); System::Drawing::Bitmap ^ bmpFromGraphics = gcnew System::Drawing::Bitmap(img->Width, img->Height, gr); bmpFromGraphics->Save("c:\\myTemp\\test.bmp");
Ergebnis:
colourTable.png: schönes buntes Bild
test.bmp ist einfach nur leer:
Windows Bild und Fax Anzeige: weiss, man kann reinzoomen, aber nicht mehr raus
Paint: schwarzes BildWas ist also schief gelaufen?
Selbst wenn man die Zeile mit dem DrawLine() rausnimmt ändert das nichts am Resultat...mfg
Martin
-
hmm vlt verknüpfst du die bitmap mit dem graphics objekt, aber nicht mit der grafik. probier mal die bitmap zu generieren _bevor_ du zeichnetstts...
-
shad0R schrieb:
hmm vlt verknüpfst du die bitmap mit dem graphics objekt, aber nicht mit der grafik. probier mal die bitmap zu generieren _bevor_ du zeichnetstts...
du meinst so rum?
... System::Drawing::Bitmap ^ bmpFromGraphics = gcnew System::Drawing::Bitmap(img->Width, img->Height, gr); gr->DrawLine(gcnew System::Drawing::Pen(System::Drawing::Color::Black), 0, 0, 20, 20); ...
Gibt das selbe Ergebnis...
-
junge ich hab mal in der dokumentation nach geschaut und zitiere hier:
public: Bitmap ( int width, int height, Graphics^ g )
Parameters
width
The width, in pixels, of the new Bitmap.height
The height, in pixels, of the new Bitmap.g
The Graphics object that specifies the resolution for the new Bitmap.die graphics instanz hat nichts mit dem inhalt der bitmap zu tun.
so funktioniert es:
int main() { using namespace System::Drawing; Bitmap bmp(L"C:\\pic_nohdr.png"); Graphics ^gr = Graphics::FromImage(%bmp); gr->DrawLine(gcnew Pen(Color::Orange, 3), 32, 32, 320, 240); bmp.Save(L"C:\\out.png", Imaging::ImageFormat::Png); return 0; }
-
grmlhmpf
Perfekt.
Danke!