【问题标题】:The joys of realtime gif decoding实时 gif 解码的乐趣
【发布时间】:2012-11-11 12:56:53
【问题描述】:

我已经写了this gist 来转换从this incredible site 下载的 gif 数据,并将其转换为可以使用 MPMoviePlayerController 播放的 mp4。

问题是,我必须下载整个 gif 然后开始转换。我想在获得数据时进行转换,我相信,但无法确认,CGImageSourceCreateIncremental 可能通过传入- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 返回的数据来实现。

有没有人尝试过或知道一个例子?

【问题讨论】:

  • 哦,我的朋友,没有乐趣......
  • @RohanKapur 有点态度...

标签: objective-c ios nsurlconnection gif cgimage


【解决方案1】:

我知道增量适用于 jpeg 和 png。它的编码有点复杂,但您应该能够在此处或 Apple 的网站上找到示例代码。无法知道它会对动画 GIF 做什么。如果它不能满足您的需求,您肯定可以找到一个开源 libgif 库,您显然需要将其移植到 iOS。我在一个项目中使用 libjpeg turbo 来获得 JPEG 的增量解码。

您引用的 Quartz 方法的一个问题是它总是从图像开始进行增量解码。因此,如果您像我一样拥有一个非常大的图像,那么随着下载大小的增加,每次请求增量图像所需的时间就越长。我实际上为此烧毁了一个 DTS 事件 - Apple 工程师同意如果他们缓存中间图像会很好,这样每个请求都会建立在最后一个图像上,但他们现在没有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-23
    • 2017-02-08
    • 2020-05-21
    • 1970-01-01
    • 2010-12-24
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多