Я пытаюсь закодировать последовательность изображений, созданных в моем коде c ++, в анимированные изображения, чтобы их было проще просматривать. Я выбрал webp и следовал за некоторыми примерами кода из официального документа. Мне не нужно настраивать какие-либо параметры. Пока это анимация, это здорово.
Код (https://developers.google.com/speed/webp/docs/container-api) выглядит так:
WebPAnimEncoderOptions enc_options;
WebPAnimEncoderOptionsInit(&enc_options);
// Tune 'enc_options' as needed.
WebPAnimEncoder* enc = WebPAnimEncoderNew(width, height, &enc_options);
while(<there are more frames>) {
WebPConfig config;
WebPConfigInit(&config);
// Tune 'config' as needed.
WebPAnimEncoderAdd(enc, frame, timestamp_ms, &config);
}
WebPAnimEncoderAdd(enc, NULL, timestamp_ms, NULL);
WebPAnimEncoderAssemble(enc, webp_data);
WebPAnimEncoderDelete(enc);
Однако, хотя входные кадры перепроверены и отметка времени увеличивается, в моем выходном файле кодируется только первый кадр. Установив
enc_options.verbose = true;
Я вижу, что только при первом запуске WebPAnimEncoderAdd () кодер предупредил меня о преобразовании YUV в rgba с потерями. Я следую неправильному примеру или как?
Очень ценится.