# Bild einfügen



## desventurados (11. Okt 2006)

Hi,

der code soll eigentlich nur eine Bitmap mit hilfe von JAI erzeugen. Das funktioniert auch alles super. Nur ich möchte jetzt noch in die zu erzeugende BMP-Datei per getImage() ein Bild einfügen. Leider klappt das nicht. Es erzeugt einfach eine leere BMP-Datei. Was hab ich falsch gemacht?


```
import javax.media.jai.JAI; 
import java.awt.*; 
import java.awt.image.BufferedImage; 

public class Test3 extends Canvas{ 
    private Image img; 
    public void createImage(String imgText, String imgFormat){ 
        try{ 
            String fontname=new String("arial"); 
            int fontsize=80; 
            Font cachedFont=new Font( fontname, 0, 1 ); 

            img=getToolkit().getImage("test.jpeg"); 

            cachedFont=cachedFont.deriveFont((float)fontsize ); 
            BufferedImage im=new BufferedImage( 800, 600,BufferedImage.TYPE_BYTE_BINARY); 
            Graphics2D graphics=im.createGraphics(); 
            graphics.setBackground(Color.white); 

            graphics.setColor(new Color(0,0,0)); 
            graphics.clearRect(0,0,800,600); 
            graphics.setFont(cachedFont); 

            graphics.drawImage(img,40,40,this); 

            JAI.create( "filestore", im, imgText + "." + imgFormat, imgFormat); 
        }catch(Exception e){ 
            System.out.println(e); 
        } 
    } 
    public static void main(String[]args){ 
        Test3 t=new Test3(); 
        t.createImage("c://barcode","bmp"); 
    } 
}
```


----------



## kaie (11. Okt 2006)

Jedes Mal das selbe Problem mit diesem verdammten asynchronen Laden der Bilder! Benutz mal die Forumssuche zu dem Thema, und nimm danach entweder einen MediaTracker, um auf das Laden des Bildes zu warten, oder nimm gleich die ImageIO. Auf das Advanced Imaging Ungetüm kannst Du dann komplett verzichten:


```
import java.awt.*;
import javax.imageio.*;
import java.awt.image.BufferedImage; 

public class Test3
{ 
    public void createImage(String imgName)
    { 
        try{ 
            Font cachedFont=new Font( "Arial", Font.PLAIN, 80 ); 

            Image img=ImageIO.read( new File("test.jpeg") );

            BufferedImage im=new BufferedImage( 800, 600,BufferedImage.TYPE_BYTE_BINARY);
            Graphics2D graphics = (Graphics2D)im.getGraphics();

            graphics.setColor(new Color(0,0,0)); 
            graphics.fillRect(0,0,800,600); 

            graphics.drawImage(img,40,40,this); 

            graphics.setFont(cachedFont); 
            graphics.drawString( "Irgendein Text (wofür ist sonst der Font da?)",100,150 );

            ImageIO.write( new File(imgName) );

        }catch(Exception e){ 
            System.out.println(e); 
        } 
    } 
    public static void main(String[]args){ 
        Test3 t=new Test3(); 
        t.createImage("c://barcode.bmp"); 
    } 
}
```


----------



## desventurados (11. Okt 2006)

Danke. Hat wunderbar geklappt.


----------

