C ffmpeg:用于加载图像的函数
我尝试使用img2dec.c中定义的C ffmpeg:用于加载图像的函数,c,ffmpeg,C,Ffmpeg,我尝试使用img2dec.c中定义的ff_load_image函数加载图像文件: char* filename = argv[1]; uint8_t* data; int linesize, width, height, log_ctx; enum AVPixelFormat pix_fmt = AV_PIX_FMT_RGB24; //load the image int i = ff_load_image(&data, &linesize, &
ff_load_image
函数加载图像文件:
char* filename = argv[1];
uint8_t* data;
int linesize, width, height, log_ctx;
enum AVPixelFormat pix_fmt = AV_PIX_FMT_RGB24;
//load the image
int i = ff_load_image(&data, &linesize, &width, &height, &pix_fmt, filename, &log_ctx);
printf("%i\n", i);
然而,我却无缘无故地犯了一个分割错误。我把
printf
语句放在ff\u load\u image
上,它已经到达函数的末尾。为什么我会犯分割错误?还有没有更好的方法来加载图像?我想获取图片中的每个像素。我怀疑您传递的参数不正确。根据报告,你的论点应该是:
- 您的第一个参数是
,如果您为至少4个uint8\u t**
指针分配了内存,但uint8\u t
未指向有效内存,则仍然可以data
- 您的第二个参数是
,它也有同样的问题,即不指向有效内存int*
uint8_t *data[4];
int linesize[4];
然后调用ff\u load\u image
as:
int i = ff_load_image(data, linesize, &width, &height, &pix_fmt,
filename, &log_ctx);
此外,您可能想退房。您说得对。这就是为什么我会犯错。非常感谢。