在c中读取JPEG头文件

时间:2016-08-02 11:23:50

标签: c header height width jpeg

我在C中编写了一个程序来读取JPEG文件,如下所示

#include<stdio.h>
#include<jpeglib.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    struct jpeg_decompress_struct cinfo;
    struct jpeg_error_mgr jerr;
    int height,width,pixel_size;

    FILE *infile = fopen("/home/dbsl/Desktop/Anu/index.jpg", "rb");

    cinfo.err = jpeg_std_error(&jerr);
    jpeg_create_decompress(&cinfo);
   jpeg_stdio_src(&cinfo, infile);
   jpeg_read_header(&cinfo, TRUE);
   jpeg_start_decompress(&cinfo);

   width = cinfo.output_width;
   height = cinfo.output_height;
   pixel_size = cinfo.output_components;
   printf("Width = %d",width);
   printf("height = %d",height);

   return(1);
}

该程序在Fedora20上成功编译。但是当运行执行文件时,它会出现以下错误:

./ a.out:加载共享库时出错:libjpeg.so.9:无法打开共享对象文件:没有这样的文件或目录

我不明白这是什么问题。

1 个答案:

答案 0 :(得分:0)

您的程序使用共享库( libjpeg.so.9 )。运行程序时,此库由ld.so(8)加载。因此,您必须在ld.so(8)尝试找到该文件的位置使用此文件。

请参阅man ld.so以查看此文件的放置位置(默认路径为 / lib / usr / lib )。