Bildbearbeitung in Java im Hintergrund

DERHAARKAMM

Mitglied
Ich würde gerne ein .jpg laden im Java bearbeiten und dann abspeichern (im Hintergrund). Jedoch möchte ich kein Canvas bzw. Panel für die Bearbeitung benutzen. Derzeit ist mein outImg leider nur schwarz.

BufferedImage outImg = new BufferedImage(constants.getDocumentWidth(), constants.getDocumentHeigth(), BufferedImage.TYPE_INT_RGB );
Image img;

image = getToolkit().getImage("dummy.jpg");

Graphics g= getGraphics();
g.drawImage(image,0,0,this);
g.drawImage(outImg, 0, 0, null);

String sImgFilename="Output03.jpg";

try
{
FileOutputStream out = new FileOutputStream(new File(sImgFilename));
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam prm = enc.getDefaultJPEGEncodeParam(outImg);
prm.setQuality( 1.0f, false );
enc.setJPEGEncodeParam( prm );
enc.encode(outImg);
}
catch( Exception e )
{
System.out.println("Error: Image storing to '" + sImgFilename + "' failed: " + e.getMessage());
}
 
Hallo,

schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;

import javax.imageio.ImageIO;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**
 * @author Thomas.Darimont
 * 
 */
public class JpegEncoderExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        BufferedImage img = ImageIO.read(new File("c:/tutorials-logo.jpg"));
        Graphics2D g = img.createGraphics();
        g.drawLine(0, 0, img.getWidth(), img.getHeight());
        g.drawLine(0, img.getHeight(), img.getWidth(), 0);
        
        JPEGImageEncoder jpegImageEncoder = JPEGCodec
                .createJPEGEncoder(new FileOutputStream(
                        "c:/tutorials-logo_low.jpg"));
        JPEGEncodeParam encodeParam = jpegImageEncoder.getDefaultJPEGEncodeParam(img);
        encodeParam.setQuality(0.75f, false);
        jpegImageEncoder.setJPEGEncodeParam(encodeParam);
        jpegImageEncoder.encode(img);
    }
}

Gruß Tom
 
Zurück