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);