问题标签 [libjpeg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2166 浏览

c - 在运行时找出 libjpeg 版本(或其他防止中止的方法)?

我的应用程序使用 libjpeg 读取/写入 JPEG 图像。一切正常

最近我的应用程序在尝试编写 JPEG 图像时开始崩溃,并在调用 jpeg_create_compress() 时出现错误“错误的 JPEG 库版本:库为 80,调用者期望为 62”(因此崩溃似乎是 libjpeg 端的故意中止而不是段错误)

一些调查表明,确实我的应用程序是针对 libjpeg-62 头文件(安装在 /usr/local/include 中)编译的,然后使用来自 libjpeg-80 的 dylib(安装在 /usr/lib/i386-linux- gnu/).

删除 libjpeg-62 头文件并使用 libjpeg-80 头文件进行编译解决了该问题。

但是,即使某些最终用户安装的库版本与编译我的应用程序所针对的库版本不同,我也希望有一个解决方案可以让我防止此类崩溃。

1)如果我能以某种方式说服 libjpeg 即使出现致命错误也不要中止,那就太好了;例如:

2)或有一个非中止检查是否安装了正确的库:

3)如果这不是开箱即用的,我可以手动检查编译时API版本(JPEG_LIB_VERSION)与运行时检测到的兼容版本。

不幸的是,我无法在 API 中找到任何可以让我使用其中任何一种方法的东西。

我只是盲人还是我需要完全不同的东西?

0 投票
1 回答
570 浏览

jpeg - 如何在源图像文件(如JPEG、TIFF、PSD)中写入修改后的exif?

我使用 libexif 来读取和修改 JPEG 文件中的 exif 元数据。我不确定如何在原始源图像文件中写入/保存修改后的内容?

有任何想法吗??谢谢。

0 投票
1 回答
516 浏览

visual-c++ - libjpeg 在没有消息的情况下死亡

我正在尝试使用 libjpeg 从 opengl 缓冲区保存屏幕截图。

我使用的功能是这个

此函数启动,但经过一些迭代(大约 100 – 150 次)后,该函数返回时不会在文件中写入任何内容,也不会生成警告或错误。

如果我使用内存编码(这实际上是我需要的),函数完成,但结果没有意义。此外,任何释放缓冲区的尝试都会出错。这是内存目标版本

此函数生成以下 jpeg 图像:

在此处输入图像描述

相比之下,保存位图文件的行会生成这个:

在此处输入图像描述

0 投票
0 回答
605 浏览

image-processing - 为什么我们需要在 jpeg_start_compress() 之后调用 jpeg_write_marker() 和 jpeg_write_header() ?[libjpeg]

据我了解,libjpeg是一个用于压缩图像数据的库。我应该能够在不调用jpeg_start_compress()函数的情况下编写标记元数据。

我有两个问题:

  • 为什么libjpeg不允许这样做?
  • 如果我有源 jpeg 文件(已压缩),我该如何修改元数据详细信息?是否可以设置任何标志来通知库我们正在处理压缩图像并且我们只需要修改元数据详细信息?

请帮忙。

0 投票
1 回答
210 浏览

dynamic - 两个libjpeg库冲突怎么办

我向其他人提供了一个依赖于 libjpeg8 的动态库 A。但是,当其他人将我的 lib 链接到他们恰好依赖于 libjpeg6 的应用程序时,会有一些冲突导致崩溃。

困境是他们不会将libjpeg6替换为更高版本,我必须使用libjpeg8中的新功能,如何在单个进程中解决这个问题?</p>

0 投票
1 回答
1040 浏览

wrapper - 在 ubuntu 中将 jpeg 库添加到 C++ Qt Creator 项目?

我想为现有的 jpeg 库创建一个包装类。我已经在 Qt creator 中创建了项目?谁能告诉我如何在 Qt Creator 中链接 libjpeg8?

0 投票
0 回答
673 浏览

jpeg - libjpeg,在量化之后,但在熵编码之前访问 DCT 系数

我需要在量化之后访问 DCT 系数表(jpeg_write_scanlines?),但在霍夫曼熵编码之前以及将文件写入磁盘之前。libjpeg有可能吗?我知道作为一种解决方法,我可以将压缩文件写入磁盘并使用缓冲图像模式(jpeg_read_coefficients)将其读回,但我想避免走弯路。

0 投票
3 回答
3846 浏览

c++ - 在 C 回调中在 C++ 中引发异常,可能跨越动态库边界......它安全吗?

我现在正在使用libjpeg来保存 JPEG 图像。如果出现错误,libjpeg 的默认行为是调用exit(),我想避免这种情况,因为这对我的程序来说不是致命错误。libjpeg允许您使用自己的错误管理器,并规定如果您使用自己的error_exit()函数(exit()默认调用),则不得将控制权返回给调用者。libjpeg 建议使用setjmp.h而不是程序来满足此要求exit()

但是,我正在编写一个 C++ 程序,并且可以访问异常。这个问题的答案表明从回调中抛出异常是安全的(就像在明确定义的行为中一样)。但它没有提到动态库,并且有一个一般的经验法则,即不要跨动态库边界抛出异常。

这是一个例子:

我想知道的是:即使 libjpeg 被编译为动态库,我是否可以从此回调中抛出异常并将其捕获回我的应用程序中?libjpeg 可能是静态库或动态库,如果它是动态库,则可能使用不同的编译器构建。但是,抛出和捕获异常的代码肯定会在同一个编译单元中。上面的代码安全吗?

仅供参考,我正在为 OS X 和 Windows 开发(并牢记 Linux 的未来可能性),所以我更感兴趣的是,这是否被认为是一般定义明确的行为,而不是针对特定平台/编译器。

0 投票
1 回答
7764 浏览

c++ - 如何在 libjpeg-turbo 中使用 jpeg_mem_src、jpeg_mem_dest?

libjpeg8 包含这两个功能,但在 libjpeg-turbo 中具有以下功能:

...

如果我尝试使用“JPEG_LIB_VERSION 80”,我会得到以下信息:

错误 LNK2019:函数中引用的未解析的外部符号 _jpeg_mem_src ...

那么,如果可能的话,我该如何使用这些功能?我需要编译一些 libjpeg-turbo 包吗?

0 投票
1 回答
3929 浏览

c++ - 如何使用 jpeglib

我正在尝试使用 jpeglib 将 jpeg 文件写入我自己的文件,而不使用 jpeg_compress 等预构建功能,而是单独编写标题和表格......这里有很多问题......

我正在使用 Windows 和 Visual Studio,所以我尝试从 gnuwin 站点安装 .exe 文件并在我的代码中包含“include”文件夹的 4 个头文件,但是当我尝试调用一些函数时,如 write_file_header、jpeg_stdio_dest 等等等,它说缺少链接,所以我必须包含实现这些功能的每个 .c 文件......

我也尝试包含 src 文件,但结果相同...我找到的每个示例仅包含标头 jpeglib.h 而没有其他内容,但是这样我无法使用我需要的功能,所以我的问题是,我该怎么做正确使用这些库?谢谢你

编辑:错误消息是错误 C3861: identifier not found... 简单地说,当我尝试调用位于 libjpeg 的某个 .c 文件中的某个函数时,编译器找不到这些函数的位置...

编辑 n.2:这里是函数的开始: