Как я могу декодировать и кодировать из Webp, используя Libwebp?

У меня проблемы с кодированием и декодированием из 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 и о том, как преобразовать в него изображения, чтобы проверить, работает ли мой код.

Большое спасибо!

0

Решение

4-й параметр для WebPEncodeRGB — это шаг (https://stackoverflow.com/a/2004638). Высота прохождения может не работать, если высота не совпадает с шагом.

1

Другие решения


По вопросам рекламы [email protected]