代码之家  ›  专栏  ›  技术社区  ›  Tom

jpeg\u read\u header libjpeg的替代品

  •  3
  • Tom  · 技术社区  · 14 年前

    这里(相当搞笑地)描述了这个问题: http://sourceforge.net/projects/gnuwin32/forums/forum/74807/topic/1629371?message=4053776

    我已经决定了第三个选项,即不使用jpeg\u stdio\u src/dest API。然而,在谷歌搜索了很多次之后,我似乎找不到文章末尾提到的“将数据输入libjpeg的其他方法”,有人能给我指出正确的位置吗?

    4 回复  |  直到 14 年前
        1
  •  2
  •   user180326 user180326    14 年前

    阴沉的人 report a workaround 对于在较新的visualstudio中针对msvcrt的链接问题。通过谷歌搜索发现 msvcrt.dll“visual studio”

        2
  •  1
  •   Martin Broadhurst    14 年前

    1. jpeg\U Create解压缩
    2. jpeg\读取\头
        3
  •  1
  •   hookenz    14 年前

    如果我正确理解这个问题,那是因为windows中所有不同文件句柄之间的差异。它们并不全都兼容。

    这个链接有用吗?它告诉你如何在它们之间转换。然后可以为函数提供正确类型的文件句柄并使其运行。

    http://www.codeproject.com/KB/files/handles.aspx

        4
  •  1
  •   Sid    8 年前

    我最近在libjppeg turbo上遇到了同样的问题。我不想重新编译库或将mscvr.dll链接到我的vs2015应用程序。

    这个功能对我很有用: jpeg_mem_src(...) 而不是使用 jpeg_stdio_src . 因为它不向库传递任何C运行时结构,所以它工作得很好。函数定义可以在这里找到 link

    它从内存缓冲区而不是文件中获取输入数据,如果您的文件不是太大/内存不是太大的问题,它就可以工作。

        5
  •  1
  •   noah.c    5 年前

    我也遇到过类似的问题,在寻找解决方案时遇到了这个帖子。最终,我只是把代码弄乱了,因为直接从文件中读取对我来说至关重要。为了解决这个问题,我做了以下工作:

    // Declare needed structs
    struct jpeg_decompress_struct dinfo;
    struct jpeg_error_mgr jerr;
    
    // Open file
    FILE * infile = fopen("myimage.jpg", "rw");
    
    // Create error manager instance
    dinfo.err = jpeg_std_error(&jerr);
    
    // Decompression process
    jpeg_create_decompress(&dinfo);
    jpeg_stdio_src(&dinfo, infile);
    jpeg_read_header(&dinfo, TRUE);
    
    // ... remainder of program