9
我想將TIF圖像轉換爲JPG圖像。對於我使用下面的代碼:將TIF轉換爲JPG而不增加位深
SeekableStream s = new FileSeekableStream(tiffUrl);
TIFFDecodeParam param = null;
ImageDecoder dec = ImageCodec.createImageDecoder(EXT_TIFFX, s, param);
RenderedImage op = dec.decodeAsRenderedImage(0);
FileOutputStream fos = new FileOutputStream(jpgUrl);
JPEGEncodeParam jpgparam = new JPEGEncodeParam();
jpgparam.setQuality(quality);
ImageEncoder en = ImageCodec.createImageEncoder(EXT_JEPGX, fos, jpgparam);
en.encode(op);
fos.flush();
fos.close();
s.close();
轉換我的圖像大小約爲92KB和位深度= 1 轉換後,我的新的JPG圖像大小約爲1573KB和位深度= 24
我之前需要在100KB以下管理我的新映像。我想這可以完成,如果我把位深度控制爲1本身。
是否有解決方案有助於執行此操作?
請參閱libnetpbm,還有一些命令行工具(netpbm)。我假設他們可以做到這一點(如果jfif(.jpeg)支持1位像素) –
保持圖像大小在100 KB以下的簡單方法是讓它保持獨立。 JPEG壓縮不支持1位像素深度,並且對於這種圖像無用。 –
@squeamishossifrage說什麼。 :-) TIFF針對1位/像素數據有幾種優化的無損壓縮算法。對於JPEG,您可以使用灰度,但會導致8位/像素(並且是有損的)。 [JBIG](http://www.jpeg.org/jbig/)會更合適。 – haraldK