[Java] BufferedImage um weissen Rand erweitern

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von fragl0r, 27. Juli 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. Juli 2010
    BufferedImage um weissen Rand erweitern

    Hi Leute!


    Also folgendes... ich hab ein BufferedImage ca 20*20 Pixel groß. Um dieses Image will ich einen weissen Rahmen, so dass das neue Buffered Image ca. 200*200 Pixel groß ist. Das kleine Image soll quasi in der Mitte des großen weissen Image sein...

    Hat mir jemand dazu ein paar verschläge? Weiss nicht so recht wie ich das geschickt anstelle...

    gruß fragl0r
     
  2. 27. Juli 2010
    AW: BufferedImage um weissen Rand erweitern

    evtl. gibts ne sauberere Lösung
    aber ich würde einmal ein BufferdImage für dein 20x20 bild nehmen
    dann ein BufferdImage fürs fertige bild
    und dann einfach ein Object vom typ Graphics erstellen
    Code:
    Graphics2D g2d = fertigesBild.createGraphics();
    g2d.drawRect(...);
    g2d.drawImage(deinBild,x,y,usw.);
    
    das Bild mit der richtigen Größe initialisieren
    Das Rechteck mit der entsprechenden Farbe und größe reinmalen
    dann das Bild an der gewünschten position reinkopieren
     
  3. 27. Juli 2010
    AW: BufferedImage um weissen Rand erweitern

    so würd ichs auf die schnelle machen.
    also auch ein 200x200 bufferedimage erzeugen, weiß anpinseln und das kleine (20x20) Bild zentriert draufpainten.

    Code:
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    
    public class TestMain {
    
     public static void main(String[] args) throws IOException {
     String srcPath = "abc.png";
     String destPath = "xyz.png";
     Image i = Toolkit.getDefaultToolkit().getImage(srcPath);
     new ImageIcon(i);
     BufferedImage bImage = new BufferedImage(200, 200, BufferedImage.TYPE_INT_ARGB_PRE);
    
     Graphics g = bImage.getGraphics();
     g.setColor(Color.WHITE);
     g.fillRect(0, 0, bImage.getWidth(), bImage.getHeight());
     g.drawImage(i, (bImage.getWidth() - i.getWidth(null)) / 2, (bImage.getHeight() - i.getHeight(null)) / 2, null);
     g.dispose();
     ImageIO.write(bImage, "png", new File(destPath));
     }
    }
    
     
  4. 27. Juli 2010
    AW: BufferedImage um weissen Rand erweitern

    Top! Habs mit euren beiden Kommentaren hinbekommen!
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.