问题标签 [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.
java - Java将JFIF文件转换为JPG文件
有没有办法在不使用任何在线工具的情况下将 .JFIF 文件转换为 .jpeg 文件?我想在java中做到这一点。问题是我将文件作为 JFIF 文件接收。我想从中创建一个 base64 字符串,但使用该字符串不会显示任何图像。
python - 如何通过 EXIF / JFIF 签名检测 JPEG 文件?
几天前,我在另一个领域问了一个问题,最后一位朋友 (@emcconville) 帮我编写了一个脚本,用于“在单个文件中恢复每个 JPEG 文件”。现在我意识到这个程序只适用于标准“JFIF”的图像,不能检索“EXIF”标准的图像(数码相机拍摄的图像)。
如何更改程序,使其也可以知道图像中的 Exif 标准?我不熟悉 Python,也不知道它的强大功能。
谢谢
image - 如何使用 Golang 设置 DPI?
Golang 图像包在某种程度上非常方便,但缺乏设置图像 DPI 的支持。我检查了生成文件的文件头,FF D8 FF DB
看起来像 jpeg raw。AFAIK,raw 不像 jfif 那样带有 DPI。所以这是我的问题,如何设置生成图像的 DPI?或者如何将 raw 转换为 jfif,我知道我可以从中编辑文件的特定位来设置 DPI?以前我在我的应用程序中嵌入了一个 AdvancedBatchConverter 可执行文件,并且曾经exec.Command(fmt.Sprintf("%s/AdvancedBatchConverter/abc.exe", cwd), outputFile, "/jfif", fmt.Sprintf("/convert=%s", jfifFileName))
这样做过,但实际上,每次我查看代码时都对它感到厌恶。
php - Facebook SDK 以 JFIF 形式返回个人资料图片,如何在 PHP 中转换为 JPG/PNG?
我正在使用 cURL 从 Facebook SDK 获取图像,但提供的图像是 JFIF 格式。我尝试使用一些函数来转换它, asimagejpeg()
和imagepng()
,但我的主机不支持这些。我也尝试按照此处所述解码文件,但也没有成功。任何帮助或建议将不胜感激。
我没有收到任何错误,但保存的图像 (fb_picture.jpg) 不可读且大小为 0KB。
image - 如何编码像 jfif 这样的图像格式或如何找到 jfif 的背景代码
如何编码像 jfif 这样的图像格式或如何找到 jfif 格式的背景代码。在网上我只找到有关 jfif 如何工作的信息,但是执行所有这些步骤的代码在哪里?
php - 如何在laravel中检测JFIF图像类型
我有让用户上传图像的 laravel 项目,我可以毫无问题地验证(jpeg/png)。当用户上传 JFIF 图像(被认为是图像/jpeg mime 类型)但 laravel 干预包显示消息“不支持编码格式(jfif)”时会出现问题。那么,如何在验证期间检测 jfif 以防止这种情况发生。我试过了:
jpeg - libjpeg 中的“CCIR601_sampling”是什么?
正如标题所述:libjpeg 中的 thejpeg_compress_struct
和 the jpeg_decompress_struct
in 都有一个如下定义的字段:
我很难弄清楚这意味着什么,或者应该如何使用它。如果您尝试将此标志设置为true
,用于压缩或解压缩,libjpeg 将简单地触发致命错误并显示此消息:
“还”很有趣,因为这种方式已经有 20 多年了,至少回到 libjpeg62。
那么,CCIR601_sampling 应该做什么呢?它是作为用户可设置的压缩、解压缩参数,还是两者兼而有之?它是否存储为文件格式的一部分?为什么它从未真正实施过?
tiff - 为 EXIF 找到 TIFF 标头中的字节顺序 0x49 0x01
对于 TIFF 标头,其前 2 个字节定义字节顺序,并且是
0x49 0x49
对于英特尔,或0x4D 0x4D
对于摩托罗拉。
...后跟一个0x00 0x2A
或0x2A 0x00
按字节顺序。后跟(第一个)目录(通常是8
)的 4 个字节偏移量。这对于一般的 TIFF 文件和嵌入在文件中的 EXIF 都是如此。
但是,我遇到了一个 EXIF 块(在 JFIF 文件中),它的头0x49 0x01 0x00 0xF0 0x00 0xF0 0x00 0x00
没有意义,除了第一个字节。如果我假设 Intel 字节顺序,忽略42
签名和偏移量,而是强制偏移量,8
那么我就可以按预期读取数据:
- 目录后跟
0x11 0x00
元素,并且 - 具有 ident
0x00 0x01
、 type0x03 0x00
、 count0x01 0x00 0x00 0x00
和 data的第一个元素0xAE 0x12 0x00 0x00
(应该是 4782 像素的原始图片宽度)。
有没有其他人遇到过这个或类似的非法 TIFF 标头?是否有已知的程序/相机可以写入这种非标准数据?如果是:它是否记录在任何地方?
jpeg - 如何找到 Jpeg 标头的库或集合?
我有一些缺少原始文件头的 jpeg 数据。这些文件不是从文件的开头开始,而是从文件的数据扫描部分开始,并以文件结束标记“FF D9”结束。我可能无法制作或找到足够相似的文件头来使用十六进制编辑器修复每个文件。我想查找或创建大量 jpeg 标头,并将每个标头附加到数据部分,以检查是否可以使用经过测试的标头形成工作 jpeg。您是否知道这样的 jpeg 标头集合或库?您知道是否有一种通用的最小 jpeg 标头可以与各种 jpeg 数据段一起使用?我听说有这样一个标题可以与廉价网络摄像头拍摄的 jpeg 一起使用。这是 2007-2011 年中国制造的最便宜的网络摄像头。如果我没记错的话,用这种网络摄像头拍摄的剧照显然使用了相同的基本标题。我不记得品牌名称或规格。我认为它只是jfif,而不是exif。我正在编写一些 python 代码,这些代码将预先挂起每个标题,但如果我可以只测试每个标题而不保存文件然后手动检查每个文件,那会更好。稍后我将发布一些关于我如何尝试执行此操作的代码。
c# - JFIF 和 EXIF 数据结构
我正在创建一个从图像中读取和打印元数据的程序,但我很难理解 JFIF 和 EXIF 标记结构。
根据 JFIF 的维基百科页面,JFIF 标记应如下所示:
FF E0 s1 s2 4A 46 49 46 00 ii ii jj XX XX YY YY xx yy
在哪里:
FF E0 是 JFIF 标记的开始
s1 和 s2 组合给出了段的大小(不包括 APP0 标记)
4A 46 49 46 00 是标识符(字面意思是 JFIF in ascii)
i 是 JFIF 的版本(2 个字节)
j 是 DPI 测量的密度单位
X 是水平 DPI
Y 是垂直 DPI
x 是水平缩略图 DPI
y 是垂直缩略图 DPI
但是,当通过我的程序运行图像时,我得到了这个:
ff e0 20 10 4a 46 49 46 20 1 1 20 20 48 20 48 20 20 ff e1
标记开始就在那里,但段大小看起来很好(0x2010??),因为 EXIF 数据的下一个标记仅在 15 个字节后开始!(FF E1)我认为没有打印 0x00 的十六进制值(因此为什么我的图像打印没有零的 JFIF 标识符)这可能会增加混乱,但即便如此,JFIF 版本 20 20 怎么样?
如果这里的任何人有任何查看图像元数据的经验,我将非常感谢您的帮助!我找不到很多可以非常清楚地分解 JFIF/EXIF 数据的资源。
如果您需要我在这里发布任何代码,那么我可以,尽管除了不将 0x00 值打印到控制台之外,它似乎按预期工作,所以我认为我的主要问题实际上是理解元数据
这是获取字节流然后将其转换为十六进制的代码:
我用不同的图像尝试了这个,它实际上正确地打印出 0 值字节,所以我正在分析的图像文件一定有一些奇怪的东西!