Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C ffmpeg:用于加载图像的函数_C_Ffmpeg - Fatal编程技术网

C ffmpeg:用于加载图像的函数

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, &

我尝试使用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, &width, &height, &pix_fmt, filename, &log_ctx);
  printf("%i\n", i);

然而,我却无缘无故地犯了一个分割错误。我把
printf
语句放在
ff\u load\u image
上,它已经到达函数的末尾。为什么我会犯分割错误?还有没有更好的方法来加载图像?我想获取图片中的每个像素。

我怀疑您传递的参数不正确。根据报告,你的论点应该是:

  • uint8_t*[4]
  • int[4]
  • int*
  • int*
  • 枚举像素格式*
  • 常量字符*
  • 空虚*
  • 你的前两个论点似乎不正确

    • 您的第一个参数是
      uint8\u t**
      ,如果您为至少4个
      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);
    

    此外,您可能想退房。

    您说得对。这就是为什么我会犯错。非常感谢。