2012-03-23 43 views
1

Javaではスケールなしで(画像の高さと幅の変更なしで)1枚のJPEG画像サイズを縮小したいと考えています。このサイトでは解決策を見つけることができませんでした。JPEGによる画像のサイズを縮尺なしで縮小します。

1 ImageIOに使用:私が試したもので、以下のソリューション1について

BufferedImage image = ImageIO.read(inputFile); 

ImageWriter writer = null; 
Iterator iter = ImageIO.getImageWritersByFormatName("jpg"); 
if(iter.hasNext()){ 
    writer = (ImageWriter) iter.next(); 
} 

ImageOutputStream ios = ImageIO.createImageOutputStream(outputFile); 
writer.setOutput(ios); 

ImageWriteParam iwParam = writer.getDefaultWriteParam(); 
iwParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); 
iwParam.setCompressionQuality(compressionQuality); 
writer.write(null, new IIOImage(image, null, null), iwParam); 

を、私がjpgためたcompressionQualityを設定するが、私はorigina画像compressQualityとNEWIMAGEを得ることができない私は時々もらうよりも大きいですオリジナル。

答えて

2

使用される圧縮品質は、JPEG画像には保存されません。

しきい値を下回る必要がある場合は、上限に達するまで毎回圧縮品質を下げて何回か試してみる必要があります。非常に低い設定では画像が悪いことに注意してください。

私はMODE_EXPLICITフラグに慣れていません。調整可能なパラメータでもあります。

+0

お返事をありがとう.. MODE_EXPLICTが...設定しなければならないけれども、ImageIOでを使用してサイズをguarteenていないあなたが言ったように、低減することができ、オリジナルの品質を検出することができない...私は別の方法を使用jai(http://www.coderanch.com/t/383601/java/java/decrease-size-jpeg-image-file)そしてそれは動作します.. –

1

品質を低下させるためのコード例が見つかりました。

重要な部分は、iwp.setCompressionQualityを設定することです。これが役に立つと期待しています。

BufferedImage bi = null; 

bi = ImageIO.read(new File("image.jpg")); 

Iterator iter = ImageIO.getImageWritersByFormatName("jpeg"); 
ImageWriter writer = (ImageWriter) iter.next(); 

ImageWriteParam iwp = writer.getDefaultWriteParam(); 
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); 

// reduced quality. 
iwp.setCompressionQuality(0.1f); 

File file = new File("c:/image_low.jpg"); 

FileImageOutputStream output = null; 

output = new FileImageOutputStream(file); 

writer.setOutput(output); 

IIOImage image = new IIOImage(bi, null, null); 
writer.write(null, image, iwp); 

writer.dispose(); 
+0

これは私が上に投稿したものと同じです。 Set CompressionQuality = 0.1は最高の圧縮率を達成しますが、品質はあまり低下しません。私はcoderanch.com/t/383601/java/java/decrease-size-jpeg-image-fileから別の解決策を見つけましたが、どういう仕組みが好きではありませんまだ。 –

関連する問題