Я хочу изменить плотность изображения 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.