问题标签 [jfif]

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 投票
0 回答
1750 浏览

php - 具有本机 imagecreatefromjpeg 功能的“未知 JFIF 修订号”

当我尝试使用本机 php 函数保存图像时,imagecreatefromjpeg有时会出现以下错误:

我的理解(我可能错了)是 JFIF 版本高于原生 php 函数支持的版本。

我如何处理图像或至少优雅地失败?(今天页面显示 HTTP 500 错误)

0 投票
2 回答
1192 浏览

python - 更新 JPEG 文件中的 JFIF 缩略图

我正在尝试使用 Python 更新 JPEG 文件中的嵌入式 JFIF 缩略图。

这是应该实现此目的的(略显骇人听闻的)方法:

当我重写旧缩略图时,此功能工作正常,即缩略图数据的大小不会改变。但是,一旦我对其应用一些转换(例如裁剪或旋转)并再次存储它,生成的文件似乎不再有效。

我上传了一张原始图片一张带有更新缩略图的图片,以便更好地进行比较。

我从例如得到的错误identify如下:

在对两个图像进行比较时,0x202大小标签中的值与嵌入的缩略图数据的大小相匹配,文件也相应地变大了。

0 投票
1 回答
2584 浏览

java - 从 JFIF 读取图像数据?

所以我正在从一个文件中读取 JFIF (JPEG) 数据,作为一个练习(我知道那里已经有库已经这样做了,我不是在寻找那些)。我已经得到了图像文件的大小、颜色深度和尺寸。但是,我不太确定如何获取实际的图像数据。我在十六进制编辑器中查看了数据,并将其与实际图像进行比较让我无处可去。如果有人有一个很好的资源来开始这个(我知道这可能是一个艰巨而有启发性的过程,但这就是我这样做的原因),那将是很棒的。

到目前为止,我的代码仅用于上下文:

然后,我需要获取每个像素并将其发送到图像。如何获取每个像素及其各自的 RGB 数据?

0 投票
0 回答
276 浏览

matlab - 使用 16x16 量化表块时如何编写编码信息 (JPEG/JFIF)

我正在尝试通过使用 16x16 量化表块和 DCT 块而不是 8x8 来开发 JPEG 编码器。我在编写这个新图像的 JFIF 标头时遇到了一些问题。0xFFDB 是量化表的 JFIF 标记。有 2 个字节来设置量化表的大小,在我的情况下,大小为 (256+3) = 259。保存图像后,MATLAB 无法读取或显示它。所以我使用了一个工具来读取 JFIF 标头,我注意到 16x16 量化表分为许多 8x8 块的表!!!!!! 如图所示。这个问题有解决办法吗???

0 投票
0 回答
48 浏览

android - 保存的位图有错误的 JPEG 数据

我在使用 android Bitmap 创建的文件时遇到了一些问题。

在我的三星设备上,来自相机的照片被旋转,它们在 EXIF 数据中有方向信息,这对程序说,如何正确显示它们。如果我从该文件的预览程序 (Mac) 打开信息,我会在那里看到 3 个选项卡:常规、EXIF 和 TIFF:

但是,如果我在读取、调整大小和写入位图时复制该文件(我需要将其调整为更小的尺寸),则生成的文件会被有效地旋转。此文件的信息有 2 个选项卡:常规和 JFIF。

所以我尝试在调整大小后旋转位图 Matrix.postRotate() ,具体取决于原始文件的 EXIF。矩阵旋转成功,但保存该文件后,它的信息有 2 个选项卡:常规和 TIFF

没有 JFIF 或 EXIF 数据,所以描述没有密度,有些程序读不出来,虽然在 Android 中读成功。

轮换后如何为该新文件添加正确信息?我真的需要帮助,因为谷歌搜索没有提供任何信息......

0 投票
2 回答
688 浏览

image - 从没有0xFF 0xC0的jpeg获取宽度和高度

我正在尝试从 jpeg(在本例中为 Instagram 图片)获取文件尺寸(宽度和高度)

https://scontent.cdninstagram.com/t51.2885-15/s640x640/sh0.08/e35/11264864_1701024620182742_1335691074_n.jpg

据我了解,宽度和高度是在 0xFF 0xC0 标记之后定义的,但是我在这张图片中找不到这个标记。它是否已被剥离或是否有我应该检查的替代标记?

0 投票
1 回答
27 浏览

java - 使用更少的内存放大已经很大的 jpeg

我需要放大已经很大的 jpeg,它们用于打印,所以它们需要非常大的 300PPI 文件。生成的图像将太大而无法完全保存在内存中。我的想法就像将原始图像分成小条,分别放大它们中的每一个并将其写入输出文件(另一个 jpeg),永远不要将最终图像完全保留在菜单上。我已经阅读了关于 jpegs 的无损操作,这似乎是可行的方法(使用条创建一个文件并将 mcus、huffman 表和量化表复制到最终文件),还阅读了一些关于 java 上的缩写流的内容。有什么好方法可以做到这一点?

0 投票
1 回答
246 浏览

c - 任何大于 16x8 或 8x16 的图像尺寸的 JPEG 编码错误

目前我正在为一个大学项目开发​​一个 jpeg 编码器。图像具有固定大小,编码器使用固定量化和 Huffman 表进行基线处理。首先,我的代码从 SDRAM 读取 32 位 RGBx 值,转换为 YCbCr 颜色空间,将每个通道归一化为 0 并写回。然后,它开始对 8x8 块进行 DCT,并将熵编码数据写入 SDRAM。此过程使用 C 完成,然后 Python 代码创建一个带有适当 JFIF 标记和熵编码数据的文件。最后,操作系统默认的 jpeg 解码器用于通过简单的双击来查看图像。

我的代码适用于 8x8、8x16 和 16x8 图像,但不适用于 16x16,也不适用于项目中使用的图像的实际大小。下面您可能会看到 16x16 示例。

16x16 输入图像16x16 输入

16x16 输出图像16x16 输出

但是,在 stackoverflow 上,它似乎与我的操作系统的默认解码器不同。下面是它在 macOS 预览应用程序上的样子。

在此处输入图像描述

我相信我的问题是由于 JFIF 中的标记或某种算法错误造成的。

如果有 jpeg 经验的人可以帮助我,我会很高兴。

亲切的问候

0 投票
1 回答
331 浏览

jpeg - JPEG JFIF 中的重新启动标记是可选的吗?

我正在尝试使用 JPEG (JFIF) 基线图像解码器。在阅读有关重新启动间隔的信息时,我感到困惑。JPEG 图像有一个 DRI 字段,它告诉您图像应该在多少个 MCU 后重新启动。但除此之外,扫描中还插入了重新启动标记。对我来说,这似乎是多余的信息。有人可以建议我们为什么在两个地方需要这些信息吗?还是其中之一是可选的?在我看来,两者都应该足够了。如果我们想要 Restart Intervals 的多线程优势,那么只有 DRI 就足够了。

0 投票
0 回答
559 浏览

java - Java从jpeg-jfif图片中提取位深度

我想从 jpeg 文件中提取位深度。我使用元数据提取器,但它将所有 jpeg 文件的所有位深度都返回为 8 位,但所有图片都有 24 位颜色深度。

样本结果:

是否还有其他用于提取位深度的库和示例?