//把图片放入File中
File file = newFile("C:\\rose.jpg");
FileInputStream fis = new FileInputStream(file);
//InputStream in = resource.openStream();
ByteArrayOutputStream bos = newByteArrayOutputStream();
byte[] buf = newbyte[1024];
try{
for(intreadNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf,0, readNum);
System.out.println("read " + readNum +" bytes,");
}
}catch(IOException ex) {
Logger.getLogger(ConvertImage.class.getName()).log(Level.SEVERE,null, ex);
}
byte[] bytes = bos.toByteArray();
ByteArrayInputStream bis = newByteArrayInputStream(bytes);
Iterator<?> readers = ImageIO.getImageReadersByFormatName("jpg");
//ImageIO is a class containing static convenience methods for locating ImageReaders
//and ImageWriters, and performing simple encoding and decoding.
ImageReader reader = (ImageReader) readers.next();
Object source = bis; // File or InputStream, it seems file is OK
ImageInputStream iis = ImageIO.createImageInputStream(source);
//Returns an ImageInputStream that will take its input from the given Object
reader.setInput(iis,true);
ImageReadParam param = reader.getDefaultReadParam();
Image image = reader.read(0, param);
//got an image file
BufferedImage bufferedImage = newBufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
//bufferedImage is the RenderedImage to be written
Graphics2D g2 = bufferedImage.createGraphics();
g2.drawImage(image,null,null);
File imageFile = newFile("C:\\newrose2.jpg");
ImageIO.write(bufferedImage,"jpg", imageFile);
//"jpg" is the format of the image
//imageFile is the file to be written to.
System.out.println(imageFile.getPath());