Hallo, bin nun aber wirklich entnervt - ich möchte ein kleines Wasserzeichen-Programm erstellen. Der folgende Code läd eine Dokument (jpg-Bild) und speichert es auch wieder. Mir will es aber einfach nicht gelingen etwas in das Bild zu zeichenen (einen Text). Wer weis wie das geht?
Code:
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public class MyImgShow
{
public static String dateiname;
public static void main( String[] args )
{
dateiname = args[0];
if( 2 > args.length )
System.out.println( "Usage:\njava MyImgShow <ImgFile>\nE.g.:\njava MyImgShow x.png" );
else
new MyImgShow( args[0], args[1] );
}
MyImgShow( String sFile, String sID )
{
//BufferedImage bufImg = null ;
BufferedImage bufImg = new BufferedImage(600, 800, BufferedImage.TYPE_INT_RGB);
try
{
bufImg = ImageIO.read( new File(sFile) ) ;
}
catch(IOException ex)
{
//...
}
//???????????????????????????????????????????????????????????????????????????
// Was läuft hier falsch ? Der String wird einfach nicht in das Bild geschrieben!!!!!
// ???????????????????????????????????????????????????????????????????????????
Graphics2D g = bufImg.createGraphics();
Font myFont = new Font("Arial",Font.PLAIN,25);
g.setFont(myFont);
//g.drawImage( bufImg, 0, 0, this );
g.drawString("Dokument"+sID,30,30);
g.drawRect(10,10,20,20);
g.dispose();
try
{
boolean boo = ImageIO.write(bufImg, "jpg", new File("Stempel"+sID+".jpg") ) ;
}
catch(IOException ex)
{
//...
}
}