/**
* 三种读取图片的方式
*/
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();