问题标签 [libjpeg-turbo]

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 回答
796 浏览

c++ - 需要适用于 VS2013 x64 的 jpeglib-turbo 示例

我正在尝试学习如何使用 jpeg-turbo 库。我有一个魔鬼的时间开始。doc 文件夹中的 example.c 示例,以及我在网上找到的每个示例,当我尝试读取 .jpg 文件时在 VS2013 中崩溃。他们编译得很好。但是当我运行它们时,它们会因访问冲突错误而崩溃。

我真正需要的是一个可以在 VS2013 x64 中正常运行的小型工作(对初学者友好)示例。包括 main(){} 代码块代码。如果我可能需要设置的 VS 项目属性中有什么特别的东西可能会导致崩溃。

我正在努力让一个简单的例子工作。

谢谢您的帮助。

*编辑——这是一个非常小的例子。我也尝试让 jpeglib 在使用和不使用 Boost/GIL 的情况下运行,但加载图像时它总是崩溃:异常在 0x00000000774AE4B4 (ntdll.dll)

0 投票
1 回答
11296 浏览

jpeg - jpegoptim vs jpegtran vs mozjpeg

我在这件事上发现了两篇略有冲突的博客文章,在这里我总结一下:

更令人困惑的是,这个 Reddit 线程表明 mozjpeg 使用 jpegcrush 中使用的相同算法,并且 jpegcrush 是 jpegtran 的包装器......所以我们绕了一圈?我只能假设那些 Reddit 评论是错误的,有人可以确认吗?

0 投票
1 回答
1145 浏览

pillow - jpegtran 与 libjpeg-turbo、jpegoptim 和 mozjpeg 有什么关系?

据我了解,jpegtran 包含在 libjpeg-turbo 中,并且在使用optimize=True. jpegoptim 使用与 jpegtran 相同的算法,但需要将图像临时保存到磁盘才能对其进行优化,并且 jpegoptim 具有额外的有损压缩能力。

查看 Github 上的 mozjpeg 存储库,有很多对 libjpeg-turbo 的引用,而且它有更多的星星,所以我的问题是它们之间有什么关系?mozjpeg 是 libjpeg-turbo 的一个分支,它可以做任何事情甚至更多吗?即,是否可以禁用 mozjpeg 中的某些功能并最终获得与 libjpeg-turbo 相同的性能和结果?

0 投票
3 回答
1682 浏览

c - libjpeg turbo tjCompressFromYUV

我想在 C 中使用 libturbojpeg 将平面 4:2:0 YUV 缓冲区压缩为 jpeg 图像,但我在使用该tjCompressFromYUV()函数时遇到了问题。

这是我的代码:

返回的错误字符串tjGetErrorStr()是“Bogus input colorspace”。

我尝试链接 libturbojpeg 版本 1.4.2 和 1.4.90。

任何帮助将不胜感激,

谢谢

0 投票
1 回答
771 浏览

jpeg - libjpeg-turbo的压缩速度和我程序中的libjpeg没有区别

我的程序在android设备上运行,设备是支持NEON的ARM系统。

起初我使用 libjpeg 将 RGB 图像(800*480)压缩为 jpeg。每张图像的速度约为 70 毫秒,但对我来说太慢了。后来我找到了libjpeg-turbo,似乎它可以提高ARM中的NEON的压缩速度。

但是经过编译和测试,我发现它们的压缩速度几乎一样。并且传递给 tjCompress2 的质量和标志的更改也没有生效。我不知道我的程序中是否有问题或缺少某些东西。下面的代码:

jpeg buffer(out) 由我自己分配和释放。

我使用的 libjpeg-turbo 版本是 1.4.2

0 投票
0 回答
502 浏览

c - libjpeg 中的 JCS_RGB 和 JCS_EXT_RGB 有什么区别?

JCS_EXT_RGB 与 JCS_RGB 有何不同,我应该何时使用它们?

0 投票
2 回答
2166 浏览

image - 如何正确打开/解码超过 65500 * 65500 像素的 jpeg 图像?

我正在尝试从 Hamamatsu NanoZoomer 幻灯片扫描仪生成的文件中提取图像内容。NDPI 文件使用修改后的 TIFF 结构,并将图像内容以 JPEG 格式存储在一大块中。使用 StripOffsets 和 StripByteCounts,我能够提取应该是 JPEG 文件的数据。

数据流具有 JPEG 文件的所有正确签名,例如 FFD8(扫描开始标记)和 FFD9(扫描结束标记)。如果这是一个小于 65500*65500 像素的图像,那么如果我将数据流保存到 jpeg 文件中,我可以很好地打开文件。

在 JFIF 头中,FFC0 标记之后的第三个和第四个字节表示图像高度;之后的两个字节代表图像宽度。但是对于大于 65500*65500 像素(实际上是 122880*78848 像素)的图像,这四个字节据说代表图像高度和图像宽度都是零。在此之后(第 255-263 行),我将它们更改为255、220、255、220。当我通过在 Windows 中右键单击它并选择详细信息来检查 jpeg 信息时,我确实看到 Windows Photo Viewer 将分辨率读取为 65500*65500,尽管它们并不代表真正的像素分辨率。问题是,当我试图打开图像时,它显然是以错误的方式解码的。

所以我的问题是:如何正确打开这样的 jpeg 文件?或者说,我怎样才能正确地将这些图像内容的全部解码到内存中?

我现在正在尝试使用 MATLAB 了解文件结构。最终,我将使用 Python + OpenCV(或在必要时使用 Python + Cython + libjpeg-turbo)将整个图像读入内存。

0 投票
3 回答
19441 浏览

python - 如何在 OSX 上安装 libjpeg?

libjpeg 或 libjpeg-turbo 是安装Pillow的要求,这是在 django 上存储图像的新要求jpeg所以我需要安装 Pillow,但在我通过名为 libjpeg 或 libjpeg-turbo 的软件包获得支持之前,它不会起作用。我希望至少是这样。

这种依赖在开发服务器上不是问题,但我需要在本地做一些工作(Macbook Pro OSX 10.11.5)。还没有能够做到这一点或找到一个解决方案来安装 OSX。我希望我能在里面找到一些东西,pip但是condaOSX 什么都没有。我已经看到有各种在 Linux 上安装的常规方法。

0 投票
2 回答
819 浏览

c - 使用返回“空输入文件”的 libjpegturbo 解压缩 jpeg

正如标题所述,我正在尝试使用 libjpeg-turbo 读取 JPEG 文件。我在家里的 Mac 上尝试了这段代码,它可以工作,但现在我在 Windows 上,它Empty input file在调用时给了我一个错误jpeg_read_header。我已经通过执行 fseek/ftell 验证了文件不是空的,并且我得到的大小与我期望的大小相对应。

我最初的想法是我可能没有以二进制模式打开文件,所以我也尝试使用 _setmode,但这似乎没有帮助。这是我的代码供参考。

任何帮助深表感谢!

0 投票
1 回答
359 浏览

c - 来自 libjpeg-turbo-1.5.1-vc.exe 的 TurboJPEG API 产生错误的输出

我在 Visual Studio 2015 中用 C 语言编写了一个测试程序,用于测试 libjpeg-turbo TurboJPEG-API。

在这个测试程序中,我生成一个 800x800 RGB 像素的图像并将其写入磁盘。当我使用TJSAMP_GRAYtjCompress2功能时,磁盘上生成的图像看起来不错:

libjpeg-turbo 1.5.1 版 TurboJPEG API 的 TJSAMP_GRAY 输出。

当我改用图像时TJSAMP_444,图像看起来很奇怪:

TJSAMP_444 来自 libjpeg-turbo 版本 1.5.1 的 TurboJPEG API 输出。

但是,这两个图像都无法在 Adob​​e Photoshop 中打开,而是在 MS-Paint、Chrome 或 Internet Explorer 中打开。TJSAMP_GRAY除了产生奇怪的图像之外的所有其他选项,质量设置为 100TJSAMP_GRAY会产生奇怪的输出。(这篇文章中的图像是通过屏幕截图复制的,并保存为 png 以用于较小的数据。)turbojpeg.dll我还通过 P-Invoke使用该库编写了一个 C#-Program 。该程序正在产生有效的输出。

问:我的错在哪里?

有问题的源代码:

为了完整起见,测试 C# 源代码可以正常工作: