У меня проблемы с кодированием и декодированием из webp с использованием libwebp на c ++.
Я построил это тестовое приложение, которое берет созданный мной файл webp (который отлично смотрится в chrome), и попытался расшифровать его в rgb и обратно в webp, просто чтобы понять, как его использовать, и вывод неправильный:
//Code before reads the webp file, and assigning it to a uint8_t buffer called "pic" ///
WebPConfig config;
ASSERT(WebConfigIit(&config) == TRUE)
int width=0 height =0;
uint8_t * rgb = WebPDecodeRGB(pic, size, &width, &height)
ASSERT (rgb != NULL)
// At this point the width and the height is valid, and the rgb is assigned.
uint8_t* originalPic = null;
size_t size = WebPEncodeRGB(rgb, width, height, height, &originalPic);
// Didn't quite know what to put in the stride param..
/// Code after saves the originalPic buffer to a file ////
Как вы можете видеть, все, что я пытался сделать, — это управлять кодированием и декодированием webp и пытаться сохранить его обратно в файл, но когда я пытаюсь открыть файл, он выглядит поврежденным.
Не могли бы вы помочь мне разобраться в чем проблема?
более того, я был бы рад узнать больше о параметре шага, а также о формате rgb и о том, как преобразовать в него изображения, чтобы проверить, работает ли мой код.
Большое спасибо!
4-й параметр для WebPEncodeRGB — это шаг (https://stackoverflow.com/a/2004638). Высота прохождения может не работать, если высота не совпадает с шагом.