Bereich im Image löschen

Status
Nicht offen für weitere Antworten.
G

GastDanke

Gast
Hallo zusammen,

ich habe ein BufferedImage, das ist transparent.

Mit getGraphics().draw(Shape s) zeichne in das Bild, jetzt möchte ich aber, das er nicht zeichnet, sondern exakt diesen Bereich wieder transparent macht.

Also exakt die Pixel die das Shape bemalen "würde" soll er jetzt löschen, bzw. transparent machen!

Hat jemand eine Lösung?

Vielen Dank schonmal
 

Illuvatar

Top Contributor
Code:
Graphics2D g = (Graphics2D)myImage.getGraphics();
g.setComposite (AlphaComposite.getInstance(AlphaComposite.DST, 0));
g.fill (myShape);

Ungetestet, sollte aber funktionieren ;)
 

Illuvatar

Top Contributor
Ups, DST war falsch, hätte natürlich SRC sein müssen. Beispielprogramm:

Code:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import static java.awt.Color.RED;

public class TestTransparency
{
  public static void main(String[] args)
  throws IOException
  {
    BufferedImage img = getTransparencyEnabledImage ("earth.jpg");
    Graphics2D g = (Graphics2D)img.getGraphics();
    g.setComposite (AlphaComposite.getInstance(AlphaComposite.SRC, 0));
    g.fill (new Rectangle(50, 50, 50, 50));
    g.dispose();
    
    JFrame f = new JFrame("Test");
    f.getContentPane().setBackground(RED);
    f.add (new JLabel(new ImageIcon(img)));
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setVisible(true);
  }
  private static BufferedImage getTransparencyEnabledImage(String filename)
  throws IOException
  {
    BufferedImage img = ImageIO.read (new File(filename)); // enthält nicht unbedingt einen alpha-kanal
    BufferedImage ret = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
    ret.getGraphics().drawImage(img, 0, 0, null);
    return ret;
  }
}
(earth.jpg ist einfach irgendein Bild das ich zum Testen verwendet hab)

Falls du an der entsprechenden Stelle eine Halbtransparenz willst, musst du dir mal das AlphaComposite noch genauer anschauen. Diese Methode hier löscht alles, was vorher an der Stelle war, wo du zeichnen willst, und ersetzt das durch ein 100%-transparentes Rechteck.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E relevanter bereich einer isometrischen karte zeichnen (AffineTransform) Spiele- und Multimedia-Programmierung 0
S Nur den Bereich des JPanels zeichen der im Viewport des JScrollPane angezeigt wird Spiele- und Multimedia-Programmierung 8
aze Java:Bezierkurve mit Stützpunkt im negativen Bereich Spiele- und Multimedia-Programmierung 2
T Quadratischen Bereich (ausgehend von der Mitte) freistellen Spiele- und Multimedia-Programmierung 2
C Zusammenhängenden Bereich erkennen Spiele- und Multimedia-Programmierung 8
T Position eines Image verändern mithilfe eines Timers Spiele- und Multimedia-Programmierung 6
K Video: Per Image Information Spiele- und Multimedia-Programmierung 3
M Image unpainten Spiele- und Multimedia-Programmierung 3
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
X Android Slick AE Image Pfad Spiele- und Multimedia-Programmierung 3
A Drehen von einem Image Spiele- und Multimedia-Programmierung 4
C Mouseover Area genau wie Image Spiele- und Multimedia-Programmierung 8
L Slick-Image aus byte-array erzeugen Spiele- und Multimedia-Programmierung 2
0 2D Spiel Welt scrollen bzw Image erweitern Spiele- und Multimedia-Programmierung 2
T jME3: awt.Image <-> jME3.Image Spiele- und Multimedia-Programmierung 7
F nur Ausschnitt eines Image zeichnen Spiele- und Multimedia-Programmierung 9
F Hintergrund bei Image entfernen Spiele- und Multimedia-Programmierung 4
S Image-Einbindung Spiele- und Multimedia-Programmierung 5
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
T Glüh effekt um Image Spiele- und Multimedia-Programmierung 9
radiac Aktuelles ScreenBild als Image? Spiele- und Multimedia-Programmierung 6
Stillmatic1985 Buffered Image drucken Spiele- und Multimedia-Programmierung 1
P Culling von Image-Objekten Spiele- und Multimedia-Programmierung 3
E Alternative zu import com.sun.image.codec.jpeg.JPEGCodec ? Spiele- und Multimedia-Programmierung 1
E JPCT background image Spiele- und Multimedia-Programmierung 3
P Grosses Bufferd Image Drucken Print API Spiele- und Multimedia-Programmierung 3
G Image drucken Spiele- und Multimedia-Programmierung 17
S Image will nicht laden Spiele- und Multimedia-Programmierung 3
A Image in BufferedImage konvertieren Spiele- und Multimedia-Programmierung 2
O Image dynamisch erstellen. Spiele- und Multimedia-Programmierung 6
G Punkt in Image auf Transparenz prüfen Spiele- und Multimedia-Programmierung 6
H image.setRGB() zeichnet falsch Spiele- und Multimedia-Programmierung 3
R Transparente Farbe von (Buffered) Image Spiele- und Multimedia-Programmierung 10
D Welcher Image Typ am besten für 2D-Spiele geeignet? Spiele- und Multimedia-Programmierung 5
O Image konvertieren in monochrom scharz/weiß Spiele- und Multimedia-Programmierung 3
F Image eines bestimmten Bereichs eines JPanels erstellen Spiele- und Multimedia-Programmierung 4
T Spiel als Vollbild starten mit Image als HIntergrund Spiele- und Multimedia-Programmierung 8
O transparente farbe in Image mit Graphics Spiele- und Multimedia-Programmierung 8
S Image to BufferedImage Spiele- und Multimedia-Programmierung 3
D Image.getGraphics() in einem Frame Spiele- und Multimedia-Programmierung 4
F Spigot 1.14 Minecraft Welt file löschen Spiele- und Multimedia-Programmierung 6
C ***** bitte thread löschen *** Spiele- und Multimedia-Programmierung 3
agentone BufferedImage transparent löschen Spiele- und Multimedia-Programmierung 12
X Polygon in Graphics2D löschen Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben