Wasserzeichen in Bildern

Status
Nicht offen für weitere Antworten.
D

dogBrown

Gast
Hi, weiss einer wie man ein Wasserzeichen in Bildern bekommt?
 

Wildcard

Top Contributor
Gibt zig fertige Programme dafür und selbst eins zu basteln ist 10 Minuten arbeit (habe ich selbst vor ein paar Monaten gemacht). Welches konkrete Problem hast du also?
 
D

dogBrown

Gast
Hm im umgang mit Bildern bin ich nicht so gut deswegen fehlt mir schon ein Ansatz. :(
 

Wildcard

Top Contributor
Schau dir mal ImageIO an. Bild einlesen, Graphics Objekt erzeugen. Mit Graphics Objekt zeichnen. Bild speichern.
 
D

dogBrown

Gast
Eignen sich alle Bilderformate dafür also Gif, BMP, JPEG, PNG, TiFF?
 

The_S

Top Contributor
Was verstehst du unter Wasserzeichen? Ein teilweise transparentes Bild über/unter einem anderen? Ein kleines Zeichen oder ähnliches zur Kennzeichnung in das Bild einfügen? Oder eine z. B. versteckte Nachricht um bspw. zu erkennen, ob das Bild verändert wurde? ...?
 
D

dogBrown

Gast
Ein teilweise transparentes Bild das auf ein anderes Bild unten in der Ecke gespeichert/gemalt wird.
 

The_S

Top Contributor
Für teilweise Transparenz benötigst du ein Dateiformat, welches teilweise Transparenz unterstützt. PNG tut das z. B., GIF, BMP und JPEG nicht. Und TiFF kann nicht ohne weitere Hilfsmittel aus Java heraus bearbeitet werden.
 
D

dogBrown

Gast
Auf transparenz könnte ich noch notfalls verzichten. Wie mache ich aus den 2 Bildern eines und wie kann ich die Position bestimmen?
 

The_S

Top Contributor
Schau dir mal den Post von Wildcard an. Anschließend kannst du die Forensuche mit den oben genannten Schlüsselwörtern füttern. Wenn du dann immer noch nicht weiterkommst, dann sag nochmal bescheid (mit Angabe WAS genau nicht funktioniert ;) ).
 
G

Guest

Gast
Code:
ByteArrayOutputStream baos= new ByteArrayOutputStream();
Image image = ImageIO.read(file);
BufferedImage bImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);

 Graphics2D g = outImage.createGraphics();
g.drawImage(image, 0, 0, null); 

stampWatermark(outImage);

ImageIO.write(bImage, "jpg", baos);
Die Methode stampWatermark hab ich im Internet gefunden aber klappt nicht.

Code:
	public static void stampWatermark(BufferedImage image)
	{
		try
		{
			watermarkImage = ImageIO.read(watermark);
			Graphics2D graphics2D = image.createGraphics();
			
			float nx = image.getWidth(null) * 1f / modelDimentions.width;
			float ny = image.getHeight(null) * 1f / modelDimentions.height;
	
			int x2 = (int) (watermarkImage.getWidth(null) * nx);
			int y2 = (int) (watermarkImage.getHeight(null) * nx); //ny?
			int x1 = (int) ((image.getWidth(null) - x2));
			int y1 = (int) ((image.getHeight(null) - y2));
	
			graphics2D.drawImage(watermarkImage, x1, y1, x2, y2, null);
	
			graphics2D.dispose();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
 
M

MrWhy2

Gast
Hi ... Also ich bin selber noch blutiger Anfänger aber ...
Code:
 public static void stampWatermark(BufferedImage image) 
   { 
      try 
      { 
         watermarkImage = ImageIO.read([b]watermark[/b]); 
         Graphics2D graphics2D = image.createGraphics(); 
          
         float nx = image.getWidth(null) * 1f / modelDimentions.width; 
         float ny = image.getHeight(null) * 1f / modelDimentions.height; 
    
         int x2 = (int) (watermarkImage.getWidth(null) * nx); 
         int y2 = (int) (watermarkImage.getHeight(null) * nx); //ny? 
         int x1 = (int) ((image.getWidth(null) - x2)); 
         int y1 = (int) ((image.getHeight(null) - y2)); 
    
         graphics2D.drawImage(watermarkImage, x1, y1, x2, y2, null); 
    
         graphics2D.dispose(); 
      } 
      catch(Exception e) 
      { 
         e.printStackTrace(); 
      } 
   }

Wo ist denn da deine Variable watermark? was steht hinter watermark?

ansonsten was funzt nicht?
 
D

dogBrown

Gast
Hatte das bloß probiert, wie schon geschrieben, war diese Methode aus dem Internet deswegen keine ahnung :(
 
M

MrWhy2

Gast
Naja dann versuch doch mal anstellle der Variable Watermark deine Wasserzeichen Datei zu übergeben...

gruß

Mr.
 
D

dogBrown

Gast
Code:
	private static File watermark = new File("c:\\test.png");
Habs oben jetzt angelegt.
Aber die Bilder sehen immer noch so aus wie vorher.
 
M

MrWhy2

Gast
Code:
ByteArrayOutputStream baos= new ByteArrayOutputStream(); 
Image image = ImageIO.read(file); 
BufferedImage bImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB); 

Graphics2D g = outImage.createGraphics(); 
g.drawImage(image, 0, 0, null); 

stampWatermark(outImage); 

ImageIO.write(bImage, "jpg", baos);

wo ist denn hier outImage deklariert? bzw. was soll outImage sein?
 

X5-599

Top Contributor
hi,

ist das, was du haben möchtest?

Code:
public static void setWatermark(String image, String watermark)
{
    try
    {
        File imageToWatermark = new File(image);
        BufferedImage bufImg = ImageIO.read(imageToWatermark);
	    	
        Graphics2D g = bufImg.createGraphics();
        g.drawImage(ImageIO.read(new File(watermark)),200, 200, null);
        g.dispose();
	 	    
        ImageIO.write(bufImg, "png", imageToWatermark);
    }
    catch(IOException ioe)
    {
        ioe.printStackTrace();
    }
}

Bei mir läuft das so. Allerdings weiss ich nicht, ob es bei "g.drawImage()" nicht irgendwann zu einem Fehler kommen kann. Denn das "null" Argument sollte eigentlich ein ImageObserver sein. Keine Ahnung wozu der gut ist... Es scheint jedenfalls so zu funktionieren.

Die "200, 200" als x/y Koordinaten sind übrigens nur testhalber von mir eingesetzt. Hier kann für x/y beliebige Werte eingesetzt werden.

Gruß,
Michael
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Wasserzeichen API gesucht Java Basics - Anfänger-Themen 2
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
G Einbinden von Bildern in ausführbare Jar-Datei Java Basics - Anfänger-Themen 25
J Interface Einlesen von Bildern mithilfe von URL zu langsam Java Basics - Anfänger-Themen 5
S Jar Datei mit Bildern Java Basics - Anfänger-Themen 22
J Menü mit mehreren Bildern Java Basics - Anfänger-Themen 5
M Programm fertig stellen, Jar mit Bildern Java Basics - Anfänger-Themen 14
Spin Blatt mit Bildern füllen Java Basics - Anfänger-Themen 5
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
P Erste Schritte Navigation mit wechselnden Bildern ... Java Basics - Anfänger-Themen 2
D .jar erstellen (mit Bildern) Java Basics - Anfänger-Themen 5
K einfaches Drucken von Text (und ggf Bildern,gemischt) Java Basics - Anfänger-Themen 11
M Java-Prog soll Texte innerhalb Bildern erkennen Java Basics - Anfänger-Themen 2
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
S Bilder der Diashow werden in anderen Bildern angezeigt Java Basics - Anfänger-Themen 3
M Javaprogramm mit Bildern als .jar-Datei exportieren(in Eclipse) Java Basics - Anfänger-Themen 10
H Probleme mit .Jar in Verbindung mit Bildern Java Basics - Anfänger-Themen 10
D Auflösung (dpi) von TIFF und PNG Bildern auslesen Java Basics - Anfänger-Themen 9
N auswertung von bildern Java Basics - Anfänger-Themen 14
Piwi Relative Pfadangabe bei Bildern Java Basics - Anfänger-Themen 2
F Unterschied im Einfügen von Bildern in Applets vs Applications Java Basics - Anfänger-Themen 6
P [Positiv Erledigt] Ordner mit Bildern auslesen und diese speichern Java Basics - Anfänger-Themen 7
N this beim einlesen von bildern Java Basics - Anfänger-Themen 4
G Verzeichnis auslesen mit sehr sehr vielen Bildern Java Basics - Anfänger-Themen 6
B Stack mit Bildern füllen Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException bei Bildern Java Basics - Anfänger-Themen 13
B Fragen zu JAR mit Bildern Java Basics - Anfänger-Themen 4
B Problem beim Laden von Bildern mit AWT Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben