Hatena::ブログ(Diary)

devworks このページをアンテナに追加 RSSフィード

2007-02-08

画像形式変換2

package info.smoochy.jaisample;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageConverter {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            BufferedImage bufferedImage = ImageIO.read(new File("D:\\temp\\sample.jpg"));
            ImageIO.write(bufferedImage, "png", new File("D:\\temp\\conv.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

javax.imageioは以下の形式をサポートしています。

読み込み

  • jpeg
  • png
  • bmp
  • wbmp
  • gif

書き込み

  • jpeg
  • png
  • bmp
  • wbmp

でも、なんかこう腑に落ちない。これでできるんだったら、ImageTranscoderってなんのためにあるんだろう?

で、まぁ色々調べてたらJIMIというのもあって、GIF、JPEG、TIFF、PNG、PICT、フォトショップ、BMP、Targa、ICO、CUR、Sunraster、XBM、XPM、およびPCXをサポートしているらしいです。正直聞いたこともないフォーマットもありますが。

コードサンプルはこんな感じ。

package info.smoochy.jaisample;

import java.awt.Image;

import com.sun.jimi.core.Jimi;
import com.sun.jimi.core.JimiException;

public class JIMIImageConverter {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            Image image = Jimi.getImage("D:\\temp\\sample.jpg");
            Jimi.putImage(image, "D:\\temp\\conv2.gif");
        } catch (JimiException e) {
            e.printStackTrace();
        }
        
    }

}

ちなみに上記のプログラムは落ちます。JIMIはgifの書込みをサポートしていないからです。

JIMIがサポートしている形式は以下。

書き込み

  • image/x-xbm
  • image/xbm
  • image/x-jpg
  • image/jpg
  • image/jpeg
  • image/pict
  • image/bmp
  • image/x-bmp
  • image/x-jpeg
  • image/x-cmu-raster
  • image/psd
  • image/x-psd
  • image/x-pict
  • image/pcx
  • image/x-pcx
  • image/x-tga
  • image/tga
  • image/xpm
  • image/x-xpm
  • image/png
  • image/x-png
  • image/cmu-raster

読み込み

  • image/x-xbm
  • image/xbm
  • image/ico
  • image/x-ico
  • image/gif
  • image/x-gif
  • image/x-jpg
  • image/jpg
  • image/x-targa
  • image/tiff
  • image/jpeg
  • image/pict
  • image/x-tiff
  • image/bmp
  • image/x-bmp
  • image/x-jpeg
  • image/x-cmu-raster
  • image/x-psd
  • image/psd
  • image/x-pict
  • image/x-pcx
  • image/pcx
  • image/cur
  • image/x-cur
  • image/x-xpm
  • image/xpm
  • image/png
  • image/x-png
  • image/targa
  • image/cmu-raster

これらはJimi#getEncoderTypes及びJimi#getDecoderTypesで取得できます。

携帯端末等のお仕事で「どうしてもGIF! 」という方はgif-pluginを使ってみてはいかがでしょうか。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/devworks/20070208/1170945534