问题标签 [heic]

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 投票
12 回答
41221 浏览

python - 如何在 Python 中使用 HEIC 图像文件类型

将图像从 iPhone 空投到 OSX 设备时,默认使用高效图像文件(HEIF) 格式。我想用 Python 编辑和修改这些 .HEIC 文件。

我可以修改手机设置以默认保存为 JPG,但这并不能真正解决能够使用其他文件类型的问题。我仍然希望能够处理 HEIC 文件以进行文件转换、提取元数据等。(示例用例——地理编码

枕头

这是尝试读取这种类型的文件时使用 Python 3.7 和 Pillow 的结果。

看起来需要对 python-pillow 的支持(#2806),但那里存在许可/专利问题阻止它。

ImageMagick + 魔杖

看来ImageMagick可能是一种选择。在做了一个之后brew install imagemagickpip install wand但是我没有成功。

还有其他可用于以编程方式进行转换的替代方法吗?

0 投票
1 回答
2640 浏览

image - 如何在 matlab 中读取 HEIC 图像?

我有一个来自我的 iPhone 的 HEIC 图像(它包含深度数据),我想将它导入 Matlab(在 Mac 上)。但 imread() 不支持这种格式。我怎么能做到这一点呢?

0 投票
1 回答
1467 浏览

php - 使用 PHP 从 HEIC 照片中读取 EXIF 数据

我想从 HEIC 照片中读取 EXIF 数据。

如果我运行:

我明白了

如果我运行 Linux 工具exiftool test.heic- 那么我可以看到我需要的所有信息(位置、相机名称等)。

如果我运行exif_read_data("test.jpg")- 然后我会得到数据。所以我知道我使用的语法是正确的。

我正在使用 PHP 7.1 和 ImageMagick 6.9.4-10 (1684)。

我需要更新的版本吗?如果是这样,哪些适用于 HEIC?

0 投票
1 回答
173 浏览

javascript - iPhone XR,来自相机的图像在javascript中切换了宽度和高度

因此,在 iPhone XR 图像(heic 格式)上检测图像类型(横向/纵向)时,我似乎发现了一种奇怪的行为。似乎javascript切换了图像的宽度和高度。有关于这种行为的任何信息吗?或者你们对发生的事情有什么建议吗?检测任何其他图像中的正常行为的代码。

0 投票
0 回答
406 浏览

c++ - 是否可以使用 Windows 映像组件访问 HEIF 的“图像属性”元数据,例如“ispe”和“colr”?

我从格式规范中知道 HEIF 文件具有可以表示空间范围('ispe')、颜色信息('colr')、像素信息('pixi')等的图像属性。

是否可以使用 WIC 直接访问这些属性?

我可以使用GetMetadataByName访问 EXIF 和 IFD 元数据标签(如果它们存在于文件中) ,并通过取出框架来获取尺寸信息像素格式,但我不确定是否有任何方法可以使用WIC 明确读出这些由 HEIF 格式定义的“描述性项目属性”。

0 投票
0 回答
4153 浏览

c# - 如何提取 HEIC 文件格式中包含的多个图像?

我有一个包含多个图像的 HEIC 文件。如何以 JPEG 或 PNG 格式提取此图像序列?是否有简化流程的 NuGet?

这是一款适用于安卓、IOS和UWP的图像处理软件。我一直在寻找编写这部分代码的起点。

0 投票
0 回答
758 浏览

c# - 如何访问 HEIC 文件中的图像序列(使用 C#)?

我想使用 C# 访问 Heic 容器中包含的图像序列。

在 Windows 10 中,HEIF 图像扩展支持读取 (HEIF) 文件。如果设备上安装了前面提到的扩展,它应该被扩展到WIC以供开发人员使用。

我发现的有关此主题的其他库:- Magick.NET只能处理 HEIC 容器中的单个图像。- HEIF-Utility-Native-DLLHEIF.NET与之前的问题相同。- libheif是一个 C++ 库。我不知道如何使用PInvoke,即使我一直在广泛尝试了解它是如何工作的(我无法阅读 C++)

如何使用我的代码检查扩展是否已安装?如何使用 C# 从 HEIC 容器访问图像序列?以及如何通过将图像序列打包到 Heic Container 中来实现 reverce?作为替代方案,我如何将此 JavaScript移植 到 C#,或在项目中将其与 C# 一起使用以访问图像?

0 投票
0 回答
99 浏览

image - 为什么将图像转换为 HEIC 会删除整行或整列像素?

在 macOS(在 Mojave 上测试)上,将图像(PNG 或 JPEG)转换为 HEIC 会导致图像比原始图像少一行或少一列。

尝试使用以下方法将原件转换为 HEIC:

0 投票
2 回答
7534 浏览

javascript - 使 HTML5 FileReader 处理 heic 文件

当通过 FileReader api 从输入元素读取文件时,它可以工作,但我的 android 设备也允许发送文件,而且它似乎无论如何都发送 heic 文件,这会导致控制台中没有任何错误的空图像。直接从相机获取图像时,方向也是错误的。我刚刚找到要实现的重型库,我正在寻找更智能的解决方案。

JavaScript

HTML5

根本没有错误消息。无论我设置什么接受属性,桌面和安卓上的 Firefox、Chrome 都允许 .heic 文件。

最坏的解决方案:拒绝接受 .heic 文件 最佳解决方案:让 fileReader 处理 .heic 文件。在解决方案之间:检测 heic 并将其转换为 jpeg,客户端。

0 投票
2 回答
1714 浏览

python - Python EXIF 找不到 HEIC 文件的拍摄日期,但在其他工具中可见

这类似于这个问题,除了那里的解决方案对我不起作用。

在 Windows 资源管理器中查看 HEIC 文件,我可以看到几个日期。与我所知道的相匹配的是我拍摄照片的日期,标题为“日期”和“拍摄日期”。其他日期不是我想要的。

Windows 资源管理器中的图像

我尝试了两种方法在 Python 中从此文件中获取 EXIF 数据:

这适用于许多其他图像,但对于我的 HEIC 文件信息是无。

我找到了上面链接的问题,并在那里尝试了答案(exifread):

这里的 exif 是 None。所以我想知道日期是否以其他方式编码在文件中,而不是 EXIF,但是这两个工具似乎以其他方式显示:

http://exif.regex.info/exif.cgi显示: EXIF 站点

exiftool显示 exiftool

所以我彻底糊涂了!我是否在 Windows 资源管理器和这些工具中看到了 EXIF 数据?如果是这样,为什么 Python 工具都没有看到它?

谢谢你的帮助!

Windows 10,Python 2.7.16。这些照片是在 iPhone XS 上拍摄的,如果相关的话。

更新:将 HEIC 文件转换为 jpg,两种方法都可以正常工作。