/* * @(#)JPEGJai.java 1.0 02/12/03 * */ import java.awt.*; import java.awt.event.*; import com.sun.image.codec.jpeg.*; import com.sun.media.jai.codec.*; import javax.media.jai.*; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.awt.image.DataBuffer; import java.awt.geom.GeneralPath; import java.io.*; import javax.swing.*; import java.awt.image.renderable.ParameterBlock; public class JPEGJai extends JApplet { // private static Image img; public static final String DEFAULT_FILE = "duke.jpg"; private static RenderedImage img; public void init() { setBackground(Color.white); String fileName = DEFAULT_FILE; // Read the image from the designated path. System.out.println("load image from '" + fileName+"'"); img = (RenderedImage)JAI.create("fileload", fileName); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Dimension d = getSize(); g2.setBackground(getBackground()); g2.clearRect(0, 0, d.width, d.height); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); int w = d.width; int h = d.height; RenderedImageAdapter ria = new RenderedImageAdapter(img); BufferedImage bi = ria.getAsBufferedImage(); Graphics2D big = bi.createGraphics(); big.setFont(new Font("Dialog", Font.PLAIN, 10)); big.setColor(Color.black); big.drawString("BufferedImage", 4, 12); g2.drawImage(bi, 0, 0, this); try { File file = new File("images", "test.tiff"); FileOutputStream out = new FileOutputStream(file); TIFFEncodeParam params = new TIFFEncodeParam(); params.setCompression(TIFFEncodeParam.COMPRESSION_NONE); ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF",out, params); if(encoder == null) { System.out.println("imageEncoder is null"); System.exit(0); } encoder.encode(bi); } catch (Exception ex) { g2.setColor(Color.red); g2.drawString("write permissions on images/test.jpg?", 5, h*2-5); } } public static void main(String argv[]) { final JPEGJai demo = new JPEGJai(); demo.init(); JFrame f = new JFrame("JAI Demo - JPEGJai"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); f.getContentPane().add("Center", demo); f.pack(); f.setSize(new Dimension(400,300)); f.show(); } }