Ich mache es kurz:
Ein Bild, nehmen wir einfach mal eine gif-Datei, wird mittels "Bitmap Bitmapname = new Bitmap(Filestreamname);" geöffnet. Jetzt möchte ich mittels "Graphics Graphicname = Graphics.FromImage(Bitmapname);" das Bild zu einem Graphics-Objekt machen, was natürlich nicht geht, da eine indizierte Farbtabelle vorliegt.
Nach Lösungen habe ich gesucht, so viel findet man dazu nicht und selbst wenn führte das bei mir zu der Meldung, dass mir angeblich der Arbeitsspeicher ausgeht, was ich bei über 2 freien GB und dem simplen Klonen einer nicht mal 4 kB Datei ein wenig bezweifle.
Wie bekomme ich nun ein nicht indiziertes Bild für mein Graphics-Objekt?
Kleine Frage am Rande: Ist es performancetechnisch schlecht, das Graphics-Objekt direkt auf eine Bitmap zeichnen zu lassen und die Bitmap nach jedem Zeichnen als Bild der PictureBox festzulegen? Wäre es klüger, das Graphics-Objekt direkt auf die PictureBox zeichnen zu lassen und beim Speichern eine Bitmap aus dem Graphics-Objekt zu machen?
Danke für eure Hilfe
So langsam bin ich wirklich am verzweifeln. Nachdem meine zwischenzeitliche Idee, das über "Bitmapname.Save(MemoryStreamName, ImageFormat.Bmp);" zu realisieren und dann erneut aus dem MemoryStream auszulesen aufgrund der Tatsache gescheitert ist, dass dann bei erwähntem Befehl ein "allgemeiner GDI+ Fehler" auftrat, ärgere ich mich nun weiter mit .Clone() rum.
Sieht hier vielleicht irgendjemand von euch einen Fehler, der eine OutOfMemoryException auslösen könnte?
Ich kann doch wohl kaum außerhalb der Quellbitmapgrenzen liegen, wenn ich bei 0|0 starte und die Maße der Quelle wähle. Auch 0|0 und jeweils 10 Pixel Kantenlänge oder dergleichen haben nicht funktioniert.
Ein Bild, nehmen wir einfach mal eine gif-Datei, wird mittels "Bitmap Bitmapname = new Bitmap(Filestreamname);" geöffnet. Jetzt möchte ich mittels "Graphics Graphicname = Graphics.FromImage(Bitmapname);" das Bild zu einem Graphics-Objekt machen, was natürlich nicht geht, da eine indizierte Farbtabelle vorliegt.
Nach Lösungen habe ich gesucht, so viel findet man dazu nicht und selbst wenn führte das bei mir zu der Meldung, dass mir angeblich der Arbeitsspeicher ausgeht, was ich bei über 2 freien GB und dem simplen Klonen einer nicht mal 4 kB Datei ein wenig bezweifle.
Wie bekomme ich nun ein nicht indiziertes Bild für mein Graphics-Objekt?
Kleine Frage am Rande: Ist es performancetechnisch schlecht, das Graphics-Objekt direkt auf eine Bitmap zeichnen zu lassen und die Bitmap nach jedem Zeichnen als Bild der PictureBox festzulegen? Wäre es klüger, das Graphics-Objekt direkt auf die PictureBox zeichnen zu lassen und beim Speichern eine Bitmap aus dem Graphics-Objekt zu machen?
Danke für eure Hilfe
Ergänzung ()
So langsam bin ich wirklich am verzweifeln. Nachdem meine zwischenzeitliche Idee, das über "Bitmapname.Save(MemoryStreamName, ImageFormat.Bmp);" zu realisieren und dann erneut aus dem MemoryStream auszulesen aufgrund der Tatsache gescheitert ist, dass dann bei erwähntem Befehl ein "allgemeiner GDI+ Fehler" auftrat, ärgere ich mich nun weiter mit .Clone() rum.
Sieht hier vielleicht irgendjemand von euch einen Fehler, der eine OutOfMemoryException auslösen könnte?
Code:
static bitmap bmp, bmp2;
...
bmp2 = new Bitmap(FileStreamName);
bmp = bmp2.Clone(new Rectangle(0, 0, bmp2.Width, bmp2.Height), PixelFormat.Format24bppRgb);
Ich kann doch wohl kaum außerhalb der Quellbitmapgrenzen liegen, wenn ich bei 0|0 starte und die Maße der Quelle wähle. Auch 0|0 und jeweils 10 Pixel Kantenlänge oder dergleichen haben nicht funktioniert.
Zuletzt bearbeitet: