问题标签 [turbojpeg]

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 投票
4 回答
44043 浏览

c++ - 使用 libjpeg-turbo 的 TurboJPEG 的示例或教程

libjpeg-turbo 的说明在这里描述了 TurboJPEG API:“这个 API 包装了 libjpeg-turbo 并提供了一个易于使用的接口,用于在内存中压缩和解压缩 JPEG 图像”。太好了,但是有一些使用此 API 的可靠示例吗?只是想在内存中解压缩一个相当普通的 jpeg。

我发现了一些位,例如https://github.com/erlyvideo/jpeg/blob/master/c_src/jpeg.c,它似乎正在使用 TurboJPEG API,但是还有更多可靠/多样化的示例吗?

libjpeg-turbo 的源代码有据可查,因此确实有帮助。

0 投票
1 回答
1433 浏览

java - libjpeg-turbo java 编码 jpeg

我已经在我的 Mac 上安装了 libjpeg-turbo,并将 jar 和库添加到我的 eclipse 项目中。我试图从我的缓冲图像创建 jpeg byte[]:

我得到的错误是: java.lang.Exception: tjBufSize(): Invalid argument

我使用自定义机器人创建类型为 TYPE_3BYTE_BGR 的缓冲图像。我可以使用 ImageIO 创建一个 byte[],但速度很慢。

我试图找到一些关于 java 包装器的教程,但我没有找到任何从缓冲图像编码 jpeg 的教程。如果有人可以帮助我,我将不胜感激。

0 投票
1 回答
1260 浏览

java - 如何让 libjpeg-turbo 的 java 包装器实际压缩?

我无法在我的 java 项目中获取 libjpeg-turbo 来实际压缩图像。它可以很好地写入 .jpg - 但结果的最终大小总是例如与相同图像的 24 位 windows .bmp 几乎相同。一个 480x854 的图像会变成一个 1.2 兆字节的 jpeg,代码片段如下。如果我使用灰色采样,它的大小是 800Kb(而且这些图像一开始并不是花哨的图像——主要是中性背景,上面有一些填充的原色光盘,用于我正在开发的游戏)。

这是我到目前为止的代码:

我特别难以找到该项目的示例 java 使用文档;它主要假设 C 背景/用法。我不了解要传递给压缩的标志(我也不真正了解 jpeg 标准的内部结构,我也不想:)!

谢谢!

0 投票
1 回答
3133 浏览

android - 如何在 ANativeWindow 上显示 JPEG?

我正在尝试使用 Android NDK 向 ANativeWindow 显示 JPEG。我正在ANativeWindow*这样做:

我正在使用 libjpeg-turbo 加载 jpeg,方法是:

我的问题是,如何在表面上显示解码的 jpeg?我目前正在这样做:

但结果(见下文)不是我所期望的。在将缓冲区发送到表面之前我应该​​做什么?

快照

谢谢

0 投票
2 回答
1316 浏览

android - 使用 libjpegturbo 压缩批量图片时出现奇怪的结果

首先,我(想要)做什么:压缩和缩小一批图片(jpg)。让我们假设原始图片的尺寸为 1600w x 1200h。现在,我想要一份 1600x1200 的压缩副本以及另一份 800x600 和 400x300 的压缩副本。

我使用什么:我正在使用 libJpegTurob 来实现这一点。如果 LibJpegTurob 有问题,我会尝试使用 android 给定的方法。

已经尝试过:首先,我使用了从 Tom Gall ( https://github.com/jberkel/libjpeg-turbo ) 移植的 Java Wrapper。

在我开始使用超过 4mb 的图片之前,一切都很好(在 nexus 4 上)。基本上发生的是 android 抛出 OutOfMemory 异常。当我使用较小的图片(~1-2mb)但一张又一张地压缩时,就会发生这种情况。

在像 nexus s 这样内存较低的预算设备上运行它之后,情况变得更糟。低堆引起的问题,这就是我的想法。

那么,我想,我必须用c来做。只要我在预算设备上使用小于 3mb 的图片,内存问题似乎就解决了。在 nexus 4 上,我什至可以压缩 >15mb 的图片。

这是src图片。在此处输入图像描述

但是现在……问题。第一张压缩图看起来不错 在此处输入图像描述

但所有其他的看起来像这样 在此处输入图像描述或这样在此处输入图像描述

只要我保留选择的图片并压缩它们,就会发生这种情况。

现在是代码。

这是缩放和压缩发生的地方

开始压缩的Java部分..

我做错了什么???

非常感谢!!

PS对不起英语不好!

0 投票
1 回答
452 浏览

c++ - turbojpeg cpp中的realloc图像缓冲区

我正在使用 turbojpeg 来阅读图像。

我正在做一些事情:

我想重新分配 m_data 和 c_jpeg_buffer 以防 _jpegSize 或 (tj_width*tj_height) 太大。turbojpeg 文档表明,如果我使用 tjCompress2(...) 或 tjTransform(...),这将自动发生。它没有说明在这种情况下会发生什么。假设我重新分配缓冲区 - 使用 tjFree() 是否仍然安全?

0 投票
1 回答
1115 浏览

java - 在 java 中使用 libjpegturbo 进行缩放

我有一个图像,我想重新调整大小以使文件变小。通过使用 libjpegturbo 类TJScalingFactorTJCompressor,我仍然无法重新缩放图像,因为没有允许输入高度和宽度的方法。

0 投票
1 回答
2741 浏览

c - 如何将 YUYV 图像压缩成 jpeg

(交叉发布到 libjpeg-turbo-users 列表。)

我遇到了 libjpeg-turbo 的问题。

tjCompress2 函数需要 RGB 或灰度图像来压缩。

(抱歉,您必须粘贴该链接,因为它会破坏降价。)

我的网络摄像头(PS3 EyeToy)具有以下特点:

http://en.wikipedia.org/wiki/JPEG#Color_space_transformation看来,YUYV 相当于 JPEG 所需的 YCbCr(尽管与亮度相比,它的 Cb 和 Cr 数据只有一半)。我理解正确了吗?

我知道如何使用矩阵将 YUYV 转换为 RGB,但在不需要时执行两次颜色空间更改似乎浪费了稀缺的 CPU 周期和颜色精度。

有没有可以直接将YUYV图像压缩成JPEG的功能?

0 投票
1 回答
762 浏览

c++ - YCbCr 直接从 jpeg 加载器输入

我需要从 JPEG 图像中提取 CbCr 色度数据,以进行图像分析。(在 C/C++ 中)

  1. 据我了解,JPEG“原始数据”是压缩的 YCbCr。我在这个假设中正确吗?如何验证给定图像的这一点?

  2. 我目前正在使用 TubroJpeg 库。tjDecompressToYUV的文档说:

将 JPEG 图像解压缩为 YUV 平面图像。此函数执行 JPEG,但省略了颜色转换步骤,因此生成平面 YUV 而不是 RGB 图像。

我对这个函数的输出有点困惑。我认为 YUV 和 YCbCr 是稍微不同的色彩空间。这是否意味着对于 UV 色度我需要操纵输出,并且输出“UV”分量实际上是 CbCr 分量?

0 投票
1 回答
780 浏览

libjpeg - 从libjpeg中的yuv中提取灰度

在 TurboJpeg 或底层 libJpeg API 上 - 是否有一个简单的函数用于从 Ycbcr 中提取 Y 分量(在我已经阅读了图像之后)?

我知道我可以遍历数据并提取字节。这不是已经实现了吗?