# Wasserzeichen auf Bild



## antiranker (10. Sep 2008)

hi.. 
bin schon im anfängerforum damit.. 
aber da hilft mir keiner ... und ich glaube es passt auch besser hierher..  


hab nicht so viel erfahrung in java aber ich möchte ein programm, das ich in c# geschrieben hab, "übersetzen" zu java 

C#:

```
static void Main(string[] args) 
        { 
            Image original = Image.FromFile("Bild.jpg"); 
            Graphics g = Graphics.FromImage(original); 
            Image wasserzeichen = Image.FromFile("Logo.png"); 
            
            ImageAttributes ia = new ImageAttributes(); 
            ColorMatrix cm = new ColorMatrix(); 
            cm.Matrix33 = 0.05f; 
            ia.SetColorMatrix(cm); 
            g.DrawImage(wasserzeichen, new Rectangle(0, 0, original.Width, original.Height), 0, 0, wasserzeichen.Width, wasserzeichen.Height, GraphicsUnit.Pixel, ia); 
            g.CompositingQuality = CompositingQuality.HighQuality; 
            original.Save("c:\\dokumente und einstellungen\\user\\desktop\\test.jpg"); 
            g.Dispose(); 
        }
```



bisher habe ich nur die bilder geladen... 
Java:

```
Image img = new ImageIcon(ImageIO.read(new File("c:/test/Bild.jpg"))).getImage(); 
     Graphics g = img.getGraphics(); 
     Image wasserzeichen = new ImageIcon(ImageIO.read(new File("c:/test/Logo.png"))).getImage(); 
//Versuch transparenz für bild1 zu erzeugen 
Graphics2D g = (Graphics2D) img.getGraphics(); 
g.setComposite(AlphaComposite. getInstance(AlphaComposite.SRC_OVER, 0.75f));
```



das programm soll 2 bilder einlesen, das zweite bild transparent machen und auf das erste draufzeichnen... dann soll alles abgespeichert werden.[/quote]


----------



## antiranker (10. Sep 2008)

so hab ich das bild schonmal transparent...
wie kann ich es nun auf ein anderes bild legen??



> BufferedImage loaded = ImageIO.read(new File("c:/test/Logo.png"));
> BufferedImage aimg = new BufferedImage(loaded.getWidth(), loaded.getHeight(), BufferedImage.TRANSLUCENT);
> Graphics2D g = aimg.createGraphics();
> g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f));
> ...


----------



## SlaterB (10. Sep 2008)

na genauso mit createGraphics usw?
wenn du nicht direkt ein BufferedImage aus dem anderen Bild machen kannst,
dann erstelle doch wie hier ein neues Bild, und male sowohl das alte Bild als auch das Wasserzeichen darauf


----------

