C++에서 libwebp를 사용하여 웹에서 인코딩 및 디코딩하는 데 문제가 있습니다. 내가 만든 webp 파일 (크롬에서보기에는 괜찮음)을 가져와이 파일을 rgb로 디코딩 해본 다음 웹 페이지로 돌아가서이 파일을 사용하는 방법을 이해하고 출력 결과가 잘못된이 테스트 응용 프로그램을 만들었습니다.어떻게 Libwebp를 사용하여 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 ////
당신이 볼 수 있듯이, 내가하려는 것은 웹을 인코딩하고 디코드하는 것을 관리하고 그것을 파일로 다시 저장하려하지만 파일을 열려고하면 손상된 것처럼 보입니다.
문제점을 파악하는 데 도움을 주시기 바랍니다 수 있습니까? 더 이상, 나는 스트라이드 param에 대해, 그리고 rgb 포맷에 대해 좀 더 알게되어 기쁘 며, 어떻게하면 코드가 작동하는지 확인하기 위해 그림을 변환 할 수 있습니다.
고마워요!
stride 매개 변수는 RGB 색상 공간의 경우 '너비 * 3'이어야하며 RGBA의 경우 '너비 * 4'여야합니다. 기본적으로 스캔 라인 또는 행을 저장하는 데 걸리는 바이트 수는 기본적으로 얼마입니까? 'size_t size = WebPEncodeRGB (rgb, 너비, 높이, 너비 * 3, & originalPic);' –