将TIF转换为JPG而不增加Bit Depth

Shr*_*ave 9 java image image-processing type-conversion

我想将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();
Run Code Online (Sandbox Code Playgroud)

在转换之前,我的图像大小约为92KB,比特深度= 1转换后,我的新jpg图像大小约为1573KB,比特深度= 24

我需要在100KB以下管理我的新图像.我想如果我将Bit Depth控制为1本身就可以做到这一点.

是否有任何解决方案有助于执行此操作?

小智 1

恕我直言,您应该使用 Apache Commons Imaging,因为它是一个先进且完整的成像解决方案。我用它来将Tiff图像写入 PDF。有很多例子。希望这会有所帮助!