问题标签 [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.
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 的源代码有据可查,因此确实有帮助。
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 的教程。如果有人可以帮助我,我将不胜感激。
java - 如何让 libjpeg-turbo 的 java 包装器实际压缩?
我无法在我的 java 项目中获取 libjpeg-turbo 来实际压缩图像。它可以很好地写入 .jpg - 但结果的最终大小总是例如与相同图像的 24 位 windows .bmp 几乎相同。一个 480x854 的图像会变成一个 1.2 兆字节的 jpeg,代码片段如下。如果我使用灰色采样,它的大小是 800Kb(而且这些图像一开始并不是花哨的图像——主要是中性背景,上面有一些填充的原色光盘,用于我正在开发的游戏)。
这是我到目前为止的代码:
我特别难以找到该项目的示例 java 使用文档;它主要假设 C 背景/用法。我不了解要传递给压缩的标志(我也不真正了解 jpeg 标准的内部结构,我也不想:)!
谢谢!
android - 如何在 ANativeWindow 上显示 JPEG?
我正在尝试使用 Android NDK 向 ANativeWindow 显示 JPEG。我正在ANativeWindow*
这样做:
我正在使用 libjpeg-turbo 加载 jpeg,方法是:
我的问题是,如何在表面上显示解码的 jpeg?我目前正在这样做:
但结果(见下文)不是我所期望的。在将缓冲区发送到表面之前我应该做什么?
谢谢
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对不起英语不好!
c++ - turbojpeg cpp中的realloc图像缓冲区
我正在使用 turbojpeg 来阅读图像。
我正在做一些事情:
我想重新分配 m_data 和 c_jpeg_buffer 以防 _jpegSize 或 (tj_width*tj_height) 太大。turbojpeg 文档表明,如果我使用 tjCompress2(...) 或 tjTransform(...),这将自动发生。它没有说明在这种情况下会发生什么。假设我重新分配缓冲区 - 使用 tjFree() 是否仍然安全?
java - 在 java 中使用 libjpegturbo 进行缩放
我有一个图像,我想重新调整大小以使文件变小。通过使用 libjpegturbo 类TJScalingFactor
和TJCompressor
,我仍然无法重新缩放图像,因为没有允许输入高度和宽度的方法。
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的功能?
c++ - YCbCr 直接从 jpeg 加载器输入
我需要从 JPEG 图像中提取 CbCr 色度数据,以进行图像分析。(在 C/C++ 中)
据我了解,JPEG“原始数据”是压缩的 YCbCr。我在这个假设中正确吗?如何验证给定图像的这一点?
我目前正在使用 TubroJpeg 库。tjDecompressToYUV的文档说:
将 JPEG 图像解压缩为 YUV 平面图像。此函数执行 JPEG,但省略了颜色转换步骤,因此生成平面 YUV 而不是 RGB 图像。
我对这个函数的输出有点困惑。我认为 YUV 和 YCbCr 是稍微不同的色彩空间。这是否意味着对于 UV 色度我需要操纵输出,并且输出“UV”分量实际上是 CbCr 分量?
libjpeg - 从libjpeg中的yuv中提取灰度
在 TurboJpeg 或底层 libJpeg API 上 - 是否有一个简单的函数用于从 Ycbcr 中提取 Y 分量(在我已经阅读了图像之后)?
我知道我可以遍历数据并提取字节。这不是已经实现了吗?