Bilder berarbeiten + speichern[GELÖST]

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Blitzcraft

Betreff: Bilder berarbeiten + speichern[GELÖST]

BeitragFr, Dez 23, 2011 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann man Bilder bearbeiten und dann speichern Question

Also hier wird das Bild erstellt:
Code: [AUSKLAPPEN]
Local img:Timage=CreateImage(600/MAP_WIDTH,350/MAP_HEIGHT)

Wie kriege ich das jetzt hin, dass er Dinge in das Bild zeichnet?

Und wie speichere ich das ganze am Ende ab?
(Am besten als .PNG)
Screenshot aus meinem ersten Projekt
  • Zuletzt bearbeitet von Blitzcraft am Fr, Dez 23, 2011 14:35, insgesamt einmal bearbeitet

ZEVS

BeitragFr, Dez 23, 2011 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Malen ist ein bisschen komplex. In Bilder direkt kannst du nicht malen, einen ImageBuffer gibt es nicht.
Wenn du alle Vorteile von Max2D haben willst, dann würde ich mir das Bild mit GrabImage oder GrabPixmap holen. In Pixmaps direkt kannst du auch direkt zeichnen, wenn auch langam und umständlich.
Speichern als PNG geht mit der Funktion SavePixmapPNG. Um ein Bild in eine Pixmap zu konvertieren, gibt es die Funktion LockImage. Du kannst aber auch direkt Pixmaps verwenden.

ZEVS

Blitzcraft

BeitragFr, Dez 23, 2011 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab GrabPixmap genommen und es funzt Very Happy

Für die die wissen wollen wie ich es gelöst habe:
Code: [AUSKLAPPEN]
Local img:TPixmap=GrabPixmap(0,0,1000,750)
   SavePixmapPNG(img,name$+".png")


Das Bild wurde zwar nicht in der gewünschten Größe gespeichert,
aber das habe ich mit DrawImageRect gelöst.

Propellator

BeitragFr, Dez 23, 2011 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]
In Pixmaps direkt kannst du auch direkt zeichnen, wenn auch langam und umständlich. 


Falsch.

Pixmaps sind viel schneller als in Images zu zeichnen, wohlbemerkt kannst du sowieso nicht in TImages reinmalen. Das Zeichnen von Pixmaps auf den BackBuffer ist langsam.

Benutze LockImage bzw Unlockimage, um eine Pixmap des Bildes zu erhalten, in welche du reinzeichnen kannst.

MfG
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

ZEVS

BeitragSa, Dez 24, 2011 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Es kommt darauf an, was du tun willst. Umständlich ist es auf jeden Fall, über langsam kann man streiten. Man muss schließlich jeden Pixel einzeln berechnen, während Max2D einem über OpenGL z.B. das Alpha-Blending abnimmt. Diese Dinge darf man nicht vergessen. Natürlich, wenn du sowieso jeden Pixel einzeln angibst, dann ist es natürlich schneller, direkt die Pixmap zu nehmen. Wenn du aber ein Bild bearbeiten willst, also es z.B. aufhellen oder mit einem Wasserzeichen versehen, dann kann ich mir gut vorstellen, dass es seine Weile braucht, bis man jeden Pixel einzeln berechnet hat, während Max2D das natürlich in Echtzeit (< 16ms) macht.

ZEVS

Propellator

BeitragSa, Dez 24, 2011 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Für pixelgenaue Operationen sind Pixmaps alles andere als Umständlich, jedenfalls weniger umständlich als auf den Backbuffer einen einzelnen Pixel zu malen.
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group