生成图片的三种方式

/**
  * 三种读取图片的方式
  */
 private void readPicMethod(){
//  Image image = null;
//     try {
//         // Read from a file
//         File sourceimage = new File("source.gif");  //source.gif图片要与HelloJava.java同在一目录下
//         image = ImageIO.read(sourceimage);
//    
//         // Read from an input stream
//         InputStream is = new BufferedInputStream(
//            new FileInputStream("mid.jpg"));  //mid.jpg图片要与HelloJava.java同在一目录下
//         image = ImageIO.read(is);
//    
//         // Read from a URL
//         URL url = new URL("http://www.javaworld.com/images/012407-tipsbox.jpg");
//         image = ImageIO.read(url);
//     } catch (IOException e) {
//     }
//    
//     // Use a label to display the image
//     JFrame frame = new JFrame();
//     JLabel label = new JLabel(new ImageIcon(image));
//     frame.getContentPane().add(label, BorderLayout.CENTER);
//     frame.pack();
//     frame.setVisible(true);
//     //关闭窗口--退出调试
//      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 }

public void toSmaillImg(String filePath, String thumbPath)
   throws Exception {
  String newurl = thumbPath;
  java.awt.Image bigJpg = javax.imageio.ImageIO.read(new java.io.File(filePath));//读取图片
  float tagsize = 300;//100
  int old_w = bigJpg.getWidth(null);//若此方法返回 -1,通知指定的 ImageObserver 对象(图像观察者)
  int old_h = bigJpg.getHeight(null);
  int new_w = 0;
  int new_h = 0;
  float tempdouble;
  tempdouble = old_w > old_h ? old_w / tagsize : old_h / tagsize;
  new_w = Math.round(old_w / tempdouble);
  new_h = Math.round(old_h / tempdouble);
//  java.awt.image.BufferedImage tag = new java.awt.image.BufferedImage(
//    new_w, new_h, java.awt.image.BufferedImage.TYPE_INT_RGB);
//  tag.getGraphics().drawImage(bigJpg, 0, 0, new_w, new_h, null);
  java.awt.image.BufferedImage tag = new java.awt.image.BufferedImage(
    old_w, old_h, java.awt.image.BufferedImage.TYPE_INT_RGB);//创建一个不带透明色的BufferedImage对象
  tag.getGraphics().drawImage(bigJpg, 0, 0, old_w, old_h, null);//绘制图片
  
  FileOutputStream newimage = new FileOutputStream(newurl);//输出到文件流
  com.sun.image.codec.jpeg.JPEGImageEncoder encoder = com.sun.image.codec.jpeg.JPEGCodec
    .createJPEGEncoder(newimage);//创建一个和指定输出流关联的JPEGImageEncoder对象
  encoder.encode(tag);//近JPEG编码  将指定的 BufferedImage 对象编码到输出流中
  newimage.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值