问题标签 [heif]

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 投票
1 回答
258 浏览

ios - HEIF 媒体可以流式传输吗?

HEIF ( https://en.m.wikipedia.org/wiki/High_Efficiency_Image_File_Format ) 似乎是替代许多图像格式的绝佳容器。它可以将 HEVC 用于视频。但是,像视频格式一样,它可以流式传输或逐步下载吗?例如,是否可以先下载封面图像或缩略图并通过一个文件向用户显示,同时等待其他更高分辨率的图像?

0 投票
2 回答
2281 浏览

ios - 将给定的图像数据和 UTI 转换为 JPEG

给定 Data 及其 UTI,将其转换为 JPEG 的正确方法是什么?

0 投票
2 回答
726 浏览

ios - 在 IOS 11 中将 JPG/PNG 照片保存到图库时出错

我正在使用 beta iOS 11 的新设备上测试我们的应用程序,发现了一个有趣的错误。我们正在创建一个可以保存到用户画廊的图像,使用 UIActivityViewController(一些系统共享视图控制器):

分享对话框

这工作正常,呈现共享对话框,直到用户按下“保存图像”。然后我收到关于不支持这种图像格式的错误

2017-07-19 10:51:54.292881+0200 appName[6632:766119] 视频 /private/var/mobile/Containers/Data/Application/29B8C33B-9247-45FE-B51F-A35A035019A9/tmp/notImportant.jpg 无法保存到保存的相册:Error Domain=AVFoundationErrorDomain Code=-11828 "Nie można otworzyć" UserInfo={NSUnderlyingError=0x1c08558d0 {Error Domain=NSOSStatusErrorDomain Code=-12847 "(null)"}, NSLocalizedFailureReason=Ten format multimediów nie jest obsługiwany。 , NSURL=file:///private/var/mobile/Containers/Data/Application/29B8C33B-9247-45FE-B51F-A35A035019A9/tmp/notImportant.jpg, NSLocalizedDescription=Nie można otworzyć}

当我使用 png/UIImagePNGRepresentation 时也会发生同样的情况。所以问题是:

  1. iOS 11 是否支持 png/jpg?

  2. 对于操作系统版本 >= 11 的设备,我应该使用/以及如何使用 HEIF(新的苹果图像格式)?

0 投票
0 回答
310 浏览

image - 关于 HEIF/ISO-BMFF 解析

在 HEIF 或任何 ISO-BMFF 文件中,是否知道如何在根元框中使用 pitm 框来解析主图像?

例如,文件说主图像的ID存储在pitm box中,但是当我获得该ID并在iloc box中找到合适的ID时,它并没有指向有效的偏移量和长度。

或者我应该搜索其他框以在哪里找到主图像的媒体流?有谁知道我做错了什么?

0 投票
2 回答
325 浏览

ios - 我们可以通过 CDN 交付 HEIF 图像吗?

iOS11 发布后,我想通过 Amazon CloudFront 等 CDN 交付 HEIF 图像。

但是由于这个许可,我们不能将诺基亚的 HEIF 实现用于商业目的。所以我正在寻找另一种编码 HEIF 图像的方法。

根据介绍 HEIF 和 HEVC,HEIF 图像只能由具有 A10 Fusion 芯片的 iOS 设备创建。

我们目前在 iOS 上只有 HEIF 编码支持和硬件,最低配置是 A10 Fusion 芯片,例如 iPhone 7 和 iPhone 7 Plus。

我们可以通过 CDN 传递 iPhone7 等创建的 HEIF 图像吗?这算不算专利侵权?

0 投票
2 回答
48171 浏览

ios - 在服务器上将 HEIF (.heic) 转换为 JPEG?

Apple 在 iOS 11 中引入了一种名为HEIF(.heic 文件扩展名)的新图像格式。我知道您可以从 iOS 设备将图像导出为 JPG,但我想将 HEIC 文件上传到我的服务器并将它们转换为可以在所有其他设备上显示的 JPEG 文件。

谁能推荐一个好的和有效的方法来实现这一目标?

回答:

由于这个问题已经结束,我将在这里为你们其他人编辑我的答案。我们现在使用这个库将 HEIC 转换为 JPEG:https ://github.com/monostream/tifig

ImageMagick 现在还支持将 HEIC 转换为 JPEG ,这要归功于@toshic 的一个分支

感谢@monostream@toshic的巨大贡献!

EDIT1:将问题的措辞编辑为更具体并符合 SO 准则

EDIT2:添加了答案,因为该主题现已关闭:/

0 投票
1 回答
287 浏览

ios - 在 iOS 11 中使用 UIGraphicsImageRenderer 生成 HEIF 数据

我刚刚看了这个 WWDC 演讲,虽然我很高兴采用 HEIF,但他们根本没有提到UIGraphicsRenderer。在扫描UIGraphics*Renderer类的标题后,我也没有看到任何值得注意的东西。有没有办法UIGraphicsImageRenderer在运行 iOS 11 的设备上获取 HEIF 数据?

0 投票
1 回答
4039 浏览

c++ - 转换为 JPEG 时损坏的 HEIC 磁贴

我无法将 .HEIC 图像转换为 jpeg。.HEIC 文件是使用运行最新 ios 公共测试版的 iphone 拍摄的图像。我正在使用诺基亚提供的库来解析文件并从 .HEIC 文件中提取图像图块,将它们转换为 jpeg 并使用 ffmpeg/montage 将它们粘合在一起。

有太多代码无法将其全部粘贴到这个问题中,所以我将所有代码都放在了这个github repo中。它非常不言自明,应该只需几个依赖项即可运行。它们在 repo 的 README 中进行了解释。这一切都是在osx btw上完成的。

.HEIC 文件包含一个 8x6 的图像网格(图块),如果将它们放在一起,您将获得完整的图像。只需将我输入的第 7 个图块的任何图像都损坏,如下所示,我真的不明白为什么。我已经向诺基亚提出了一个问题,但回购似乎已经死了,我真的不期待那里有答案。

0 投票
0 回答
878 浏览

c++ - 获取 heic 图像的捕获日期

我正在使用 nokiatech heif api (github.com/nokiatech/heif) 来处理 IOS beta 生成的 heic 文件。

我能够获得磁贴和元数据,如旋转和尺寸,但我无法找到图像的捕获日期。我发现了一些时间戳功能,但他们抱怨“未为元上下文设置强制 FPS”,这让我认为这些功能与轨道有关,而不是与项目有关。

任何帮助,将不胜感激。

编辑:

所以在getReferencedToItemListByType(和getReferencedFromItemListByType)的文档中有一个错字,它说它需要“cdcs”作为referenceType参数。它是“cdsc”(内容描述)。

因此,到目前为止,要从 stil 图像中获取元数据 blob,您可以执行以下操作:

然后你需要解码exif。您可以轻松使用 Exiftool cli 或 exiv2 之类的 api。

0 投票
2 回答
2523 浏览

ios - What's the formal way to verify if my device is capable of encoding images in HEIC format?

I'm trying to save an image in the HEIC file format using ImageIO. The code looks something like this:

This works on devices with A10, but fails on older devices and on the simulator (also according to Apple), by failing to initialize the destination and the error message findWriterForType:140: unsupported file format 'public.heic'. I couldn't find any direct way to test if the hardware supports HEIC without initializing a new image destination and testing for nullability.

There are AVFoundation-based APIs for checking if photos can be saved using HEIC, for example using -[AVCapturePhotoOutput supportedPhotoCodecTypesForFileType:], but I don't want to initialize and configure a capture session just for that.

Is there a more direct way to see if the hardware supports this encoding type?