2007年12月29日土曜日

How to convert InputStream to others, BufferedImage to othres.

How to convert InputStream to others, BufferedImage to othres.
  • References
    • Java API Doc http://java.sun.com/j2se/1.5.0/docs/api
  • InputStream to BufferedImage
    InputStream inputStream;
    ........
    BufferedImage bufferedImage=javax.imageio.ImageIO.read(inputStream);
  • BufferedImage to File
    File outputFile=new File("/tmp/test.jpg");
    BufferedImage bufferedImage;
    String formatName="jpeg";
    .....
    boolean result=javax.imageio.ImageIO.write(bufferedImage,formatName,outputFile);
  • InputStream to File
    InputStream inputStream;
    File outputFile=new File("/tmp/test.jpg");
    BufferedImage bufferedImage;
    String formatName="jpeg";
    ........
    BufferedImage bufferedImage=ImageIO.read(inputStream);
    ImageIO.write(bufferedImage,formatName,outputFile);
  • InputStream to OutputStream
    InputStream inputStream;
    OutputStream outputStream;
    .....
    byte[] streamBytes=new byte[1024];
    int ch=0;
    while((ch=inputStream.read(streamBytes)) != -1) {
    outputStream.write(streamBytes, 0, ch);
    }
    outputStream.flush();

  • BufferedImage to ByteArrayInputStream
    BufferedImage bufferedImage;
    String formatName="jpeg";
    ......
    ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
    ImageIO.write(bufferedImage,formatName,byteArrayOutputStream);
    byte[] imageBytes=byteArrayOutputStream.toByteArray();
    ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(imageBytes);
  • ByteArrayOutputStream to BufferedImage
    ByteArrayOutputStream byteArrayOutputStream=null;
    byte[] bytes=byteArrayOutputStream.toByteArray();
    ...
    ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(bytes);
    BufferedImage bufferedImage=ImageIO.read(byteArrayInputStream);
  • Resize and Scale BufferedImage
    BufferedImage bufferedImage;
    .....
    //scale buffered image and create new Image Object
    Image tmpImage=bufferedImage.getScaledInstance((int)newImageWidth,(int)newImageHeight,Image.SCALE_AREA_AVERAGING);
    //create new BufferedImage object
    BufferedImage resizeImage=new BufferedImage((int)newImageWidth,(int)newImageHeight,bufferedImage.getType());
    //create new Graphics for BuffereImage and output Temporary Image object into it.
    Graphics2D resizeImageGraphics=resizeImage.createGraphics();
    resizeImageGraphics.drawImage(tmpImage,0,0,null);

0 件のコメント: