2018年4月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
ブログ:ココログ
時間のないサイト運営者リング
時間のないサイト運営者リング

« 関西の鉄道ファン騒然、阪急電車が阪神の線路を走行? | THE PAGE(ザ・ページ) | トップページ | [Java,Android] CPUコア数の取得 »

2014.07.20

[Java] 解像度を設定してJPEG保存

Javaで解像度(dpi)を設定してJPEG保存する方法を調べてみた。

次のようにするとできる。

    public static boolean saveJpeg(FileOutputStream outputStream, BufferedImage img, float compression, int dpi) {
        if(compression < 0 || compression > 1f) {
            return false;
        }
        ImageWriter iw = ImageIO.getImageWritersByFormatName("jpeg").next();
        try (ImageOutputStream ios = ImageIO.createImageOutputStream(outputStream)) {
            iw.setOutput(ios);

            JPEGImageWriteParam param = (JPEGImageWriteParam)iw.getDefaultWriteParam();
            param.setCompressionMode(JPEGImageWriteParam.MODE_EXPLICIT);
            param.setCompressionQuality(compression);

            IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param);
            Element tree = (Element) imageMeta.getAsTree("javax_imageio_jpeg_image_1.0");
            Element jfif = (Element) tree.getElementsByTagName("app0JFIF").item(0);
            jfif.setAttribute("resUnits", "1");     // 解像度の単位をDPIにする。
            jfif.setAttribute("Xdensity", Integer.toString(dpi));   // 解像度設定
            jfif.setAttribute("Ydensity", Integer.toString(dpi));
            // メタデータを設定
            imageMeta.setFromTree("javax_imageio_jpeg_image_1.0", tree);

            // 書き込み
            iw.write(null, new IIOImage(img, null, imageMeta), param);
        } catch (IOException ex) {
            return false;
        }
        iw.dispose();
        
        return true;
    }

« 関西の鉄道ファン騒然、阪急電車が阪神の線路を走行? | THE PAGE(ザ・ページ) | トップページ | [Java,Android] CPUコア数の取得 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/43319/60014213

この記事へのトラックバック一覧です: [Java] 解像度を設定してJPEG保存:

« 関西の鉄道ファン騒然、阪急電車が阪神の線路を走行? | THE PAGE(ザ・ページ) | トップページ | [Java,Android] CPUコア数の取得 »


Google

サーチする:
Amazon.co.jp のロゴ









携帯URL