Как решить javacv ExceptionInitializerErrorJAVA

Программисты JAVA общаются здесь
Anonymous
Как решить javacv ExceptionInitializerError

Сообщение Anonymous »

Я хочу объединить несколько изображений в GIF. Я выбрал ffmpeg. Я узнал, что в Java есть бинарные зависимости, включая FFMPEG, поэтому я выбрал javacv < /p>
Во -первых, я добавил зависимость javacv в мой файл POM : < /p>

org.bytedeco
javacv-platform
1.5.11

< /code>
Затем я написал код для синтеза GIF из нескольких изображений. < /p>
public static byte[] encodeGif(List frames, int frameDelayMs, boolean loopForever) {

if (frames == null || frames.isEmpty()) {
throw new IllegalArgumentException("frames 不能为空");
}
int width = frames.get(0).getWidth();
int height = frames.get(0).getHeight();

// ByteArrayOutputStream + FFmpegFrameRecorder
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {

try (FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(baos, width, height)) {
recorder.setFormat("gif");
recorder.setFrameRate(1000.0 / frameDelayMs);

recorder.setOption("loop", loopForever ? "0" : "1");

recorder.start();

Java2DFrameConverter converter = new Java2DFrameConverter();
for (BufferedImage img : frames) {
// 把 BufferedImage 转成 Frame
Frame frame = converter.convert(img);
recorder.record(frame);
}

recorder.stop();
}
return baos.toByteArray();
} catch (Exception e) {
log.error("FastGifUtil.encodeGif 失败", e);
throw new RuntimeException("生成 GIF 失败", e);
}

}
< /code>
Наконец, я подготовил данные для проверки, ниже приведен мой тестовый код: < /p>
public void testGenerateGif() {
log.info(">>>>>>>>>>> start get bufferedImage > start generate gif

Подробнее здесь: https://stackoverflow.com/questions/796 ... lizererror

Вернуться в «JAVA»