Pessoal...
eu redimensionei uma imagem... so que nao quero escreve-la ,, e sim passar esse Imagem para um file....
queria saber se existe alguma maneira de fazer isso...
ou se nao .. alguma ideia de como redimensionar uma imagem para poder enviar ela como um file
esse e meu codigo de redimensionamento
public void compressJpegFile(File infile, File outfile,float compressionQuality,int widthCanvas,int heightCanvas)
throws IOException {
// Retrieve jpg image to be compressed
BufferedImage rendImage = ImageIO.read(infile);
widthFile = rendImage.getWidth();
heightFile = rendImage.getHeight();
double aspectRatioCanvas = widthCanvas/heightCanvas;
double aspectRatioFile = widthFile/heightFile;
widthFile = widthCanvas;
heightFile = widthCanvas/aspectRatioFile;
if(heightFile>heightCanvas){
heightFile = heightCanvas;
widthFile = heightCanvas*aspectRatioFile;
}
this.width = (int)widthFile;
this.height = (int)heightFile;
ImageTypeSpecifier its = ImageTypeSpecifier.createFromRenderedImage(rendImage);
BufferedImage outImage = its.createBufferedImage(width, height);
Graphics2D graphics2D = outImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
// graphics2D.drawRenderedImage(rendImage, new AffineTransform());
graphics2D.drawImage(rendImage, 0, 0, width, height, null);
// Find a jpeg writer
ImageWriter writer = null;
Iterator iter = ImageIO.getImageWritersByFormatName("jpg");
if (iter.hasNext()) {
writer = (ImageWriter)iter.next();
}
// Prepare output file
ImageOutputStream ios = ImageIO.createImageOutputStream(outfile);
writer.setOutput(ios);
// Set the compression quality
ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault());
iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT) ;
iwparam.setCompressionQuality(compressionQuality);
// Write the image
writer.write(null, new IIOImage(outImage, null, null), iwparam);
//infile.delete();
// Cleanup
ios.flush();
writer.dispose();
ios.close();
// return
}