Изменение плотности X и Y и глубины цвета изображения JPEG - PullRequest
0 голосов
/ 09 мая 2020

Я хочу изменить плотность изображения jpeg с 96 до 100 dpi, а битовая глубина должна быть 8 бит.

Я использую приведенный ниже код.

    BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
    JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(os1);
    JPEGEncodeParam jpegEncodeParam = jpegEncoder.getDefaultJPEGEncodeParam(bufferedImage);
    jpegEncodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH);
    jpegEncoder.setJPEGEncodeParam(jpegEncodeParam); 
    jpegEncodeParam.setQuality(0.40f, true);
    jpegEncodeParam.setXDensity(100); 
    jpegEncodeParam.setYDensity(100);
    jpegEncoder.encode(bufferedImage, jpegEncodeParam);
    bufferedImage.flush();

Он работает нормально, но в этом коде Java API показывает предупреждающее сообщение, которое является Access restriction: The type 'JPEGImageEncoder' is not API (restriction on required library ...). и сборка Maven также этим.

Также пробовал библиотеку ImageIO, но она помогает только в битовой глубине и не может изменять dpi.

...