Como jogar um Image dentro de um File

1 resposta
renanbarros

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 
   }

1 Resposta

L

Joga essa imagem num stream de bytes (OutputStream) que você poderá fazer o que quiser com ela… lembrando que deve retorna-la ao seu tipo original antes de usa-la

Criado 3 de abril de 2007
Ultima resposta 3 de abr. de 2007
Respostas 1
Participantes 2