Text in BufferedImage einfügen, Image vervierfachen

Janni7

Grünschnabel
Hallo,
ich möchte aus einem gegebenes Image (BufferedImage, 640x480px) ein neues Image (640x640px) erstellen. Der hinzugekommene Bereich von 160x640px soll Hintergrundfarbe weiß haben und einen kurzen Text enthalten. Anschließend möchte ich dieses Image vervierfachen, d.h. ich möchte ein neues Image 1280x1280px haben, welches viermal das soeben erstellte Image 640x640px enthält.

Beispiel:
beispielq.png


Ich schätze, dass es am einfachsten wäre, ein 640x640px Image (Füllung weiß) neu zu erstellen, im oberen Bereich das Ausgangs-Image einzukopieren, im unteren Bereich den Text einzufügen und anschließend ein 1280x1280px Image neu zu erzeugen und hier das vorhergehende Image vier Mal einzufügen. Funktioniert das so oder gibt es bessere Möglichkeiten und wie füge ich Text in das Image ein und wie kopiere ich ein Image in ein anderes an der Position (x,y) ?

Janni
 
Howdie.

Das für dich relevante Stichwort lautet Graphics2D.
Du kannst für ein BufferedImage die Methode createGraphics() (oder so ähnlich) aufrufen, was dir ein Graphcis2D-Objekt für dieses Bild zurückgibt. Wie du die einzelnen Sachen einfügst, brauche ich hier nicht im Detail zu erklären, da es dafür massig Tutorials und API-Beschreibungen gibt.

Den Ablauf würde ich auch so machen, wie du schon gesagt hast:
  1. Neues BufferedImage-Objekt mit Größe 640x640 erzeugen
  2. Graphics2D-Objekt zu diesem Bild holen, Hintergrund weiß zeichen (drawRect()), altes Bild reinzeichnen (drawImage()), Schrift zeichen drawString()
  3. Neues BufferedImage-Objet mit Größe 1280x1280 erzeugen
  4. Graphics2D-Objekt zu diesem Bild holen, letztes Bild 4x reinzeichnen
Gruß
miffi
 
Zurück