替代jpeg_read_header libjpeg

所以我遇到了一个问题,在Windows上使用libjpeg导致jpeg_read_header()崩溃。

问题是(相当有趣)在这里描述: http : //sourceforge.net/projects/gnuwin32/forums/forum/74807/topic/1629371? message= 4053776

我已经决定了第三个选项,它不使用jpeg_stdio_src / dest APIs。 然而,经过大量的search,我似乎无法find在post末尾提到的“将数据提供给libjpeg”的其他方法,任何人都可以指出我的位置?

Solutions Collecting From Web of "替代jpeg_read_header libjpeg"

Sompe人员在新版Visual Studio中与msvcrt进行链接, 报告了这个问题的解决方法 。 通过googling msvcrt.dll“visual studio”

其中一种“提供数据的其他方式”是这些功能:

  1. jpeg_CreateDecompress
  2. jpeg_read_header
  3. jpeg_start_decompress
  4. jpeg_read_raw_data / jpeg_read_scanlines
  5. jpeg_destroy_decompress

如果我正确地理解了这个问题,那是因为windows中所有不同的文件句柄之间的区别。 它们并不完全相容。

这个链接会有帮助吗? 它告诉你如何在它们之间进行转换。 然后,您可以提供正确的文件句柄类型的功能,并让它运行。

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

或者,不要使用该jpeg库并使用另一个。 没有我可以特别推荐,因为我没有需要使用jpeg库之前。

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

这个函数为我工作: jpeg_mem_src(...)而不是使用jpeg_stdio_src 。 由于它不会将任何C运行时结构传递给库,所以它工作得很好。 该功能定义可以在这里找到链接

它从内存缓冲区获取输入数据,而不是文件,如果你的文件不是太大/内存不是太多的问题,这将起作用。