请问怎么样将一个JPG格式的图片文件显示出来,显示后,再灾上面画些横竖的线条,最后将画了线条的图片再保存成JPG文件。别人再看那个JPG文件时就是有线条的了。也就是说怎么简单编辑图像的问题。

解决方案 »

  1.   

    好像构建了Image后,可以取得它的Graphics,有了Graphics要画线还不容易?
      

  2.   

    贴个图形缩放的示例:
    import javax.imageio.ImageIO; 
    import javax.imageio.IIOException; 
    import java.awt.image.BufferedImage; 
    import java.awt.Image; 
    import java.io.File; 
    import java.awt.image.AffineTransformOp; 
    import java.awt.geom.AffineTransform; public class imgTest{ 
    public static void main (String argv[]) { 
    try{ 
    File fi = new File("me.jpg"); //大图文件 
    File fo = new File("me2.jpg"); //将要转换出的小图文件 
    int nw = 100; 
    AffineTransform transform = new AffineTransform(); 
    BufferedImage bis = ImageIO.read(fi); 
    int w = bis.getWidth(); 
    int h = bis.getHeight(); 
    double scale = (double)w/h; 
    int nh = (nw*h)/w ; 
    double sx = (double)nw/w; 
    double sy = (double)nh/h; 
    transform.setToScale(sx,sy); 
    System.out.println(w + " " +h); 
    AffineTransformOp ato = new AffineTransformOp(transform,null); 
    BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR); 
    ato.filter(bis,bid); 
    ImageIO.write(bid,"jpeg",fo); 
    } catch(Exception e) { 
    e.printStackTrace(); 


    }
      

  3.   

    lzmailcn(一年前的新手):我取得了JLabel的Graphics,画线是很容易,关键是画完线后怎么保存?我的JPEG图片是调用JLabel的SetIcon方法显示出来的,后来我画线也成功了,可就是不知道画完后怎么保存。
      

  4.   

    import javax.imageio.*;
    import com.sun.image.codec.jpeg.*;...
    BufferedImage buffer = new BufferedImage(...);
    // draw whatever you want on buffertry {
      File file = new File("newImage.jpg");
      FileOutputStream out = new FileOutputStream(file);
      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
      JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(buffer); 
      encoder.setJPEGEncodeParam(param); 
      param.setQuality(1.0f,false); 
      encoder.encode(buffer);
      out.flush();
      out.close();
    }