libjpeg-турбо java кодирует jpeg

Я установил libjpeg-turbo на мой Mac и добавил jar и libs в мой проект eclipse. Я пытаюсь создать jpeg byte[] из моего буферизованного изображения:

TJCompressor tj = new TJCompressor();
tj.compress(image, TJ.PF_BGR);

Я получаю ошибку: java.lang.Exception: tjBufSize(): неверный аргумент

Я использую собственного робота для создания моего буферизованного изображения с типом TYPE_3BYTE_BGR. Я могу создать байт [] с помощью ImageIO, но его медленно.

Я попытался найти некоторые учебники по java-оболочке, но я не нашел ни одного, который бы кодировал jpeg из буферизованного изображения. Буду очень признателен, если кто-нибудь сможет мне помочь.

1 ответ

Вы, кажется, передаете неверный тип аргумента в метод. Вы передаете в формате пикселей, когда вы должны передать в ноль или более флагов от TJ класс (с префиксом "FLAG_"). Тип формата пикселя будет автоматически определяться TJCompressor объект.

Убедитесь, что вы установили уровень подвыборки цветности и качество JPEG на желаемые уровни, прежде чем использовать TJCompressor также.

Образец кода:

TJCompressor tj = new TJCompressor();
tj.setJPEGQuality(75);
tj.setSubsamp(TJ.SAMP_420);
byte[] jpegBytes = tj.compress(image, 0);
Другие вопросы по тегам