通过iOS创建和导出动画gif吗?

我在iOS应用程序中有一系列用户自定义图像,这些图像以简单的逐帧翻转书样式进行动画处理。


我的问题是:有没有办法允许用户将其动画导出为动画gif?理想情况下,我希望使他们能够通过电子邮件发送电子邮件,社交共享(T / FB)或(最坏的情况。)将动画gif保存到他们的文档文件夹中,以便通过iTunes进行检索。


我知道如何将.png保存到图片库,并且找到了一种将动画录制为QT文件的方法(http://www.cimgf.com/2009/02/03/record-your-core-animation -animation /),但我还没有找到一种方法来踢出普通的老式gif动画。我在Core Animation或其他地方缺少什么吗?有没有人可以推荐的方法,框架或资源?很抱歉,这个问题过于笼统-努力寻找起点。


繁花不似锦
浏览 937回答 3
3回答

肥皂起泡泡

对于Swift 3import Foundationimport UIKitimport ImageIOimport MobileCoreServicesextension UIImage {    static func animatedGif(from images: [UIImage]) {        let fileProperties: CFDictionary = [kCGImagePropertyGIFDictionary as String: [kCGImagePropertyGIFLoopCount as String: 0]]  as CFDictionary        let frameProperties: CFDictionary = [kCGImagePropertyGIFDictionary as String: [(kCGImagePropertyGIFDelayTime as String): 1.0]] as CFDictionary        let documentsDirectoryURL: URL? = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)        let fileURL: URL? = documentsDirectoryURL?.appendingPathComponent("animated.gif")        if let url = fileURL as CFURL? {            if let destination = CGImageDestinationCreateWithURL(url, kUTTypeGIF, images.count, nil) {                CGImageDestinationSetProperties(destination, fileProperties)                for image in images {                    if let cgImage = image.cgImage {                        CGImageDestinationAddImage(destination, cgImage, frameProperties)                    }                }                if !CGImageDestinationFinalize(destination) {                    print("Failed to finalize the image destination")                }                print("Url = \(fileURL)")            }        }    }}我已经根据上面的答案将其转换。希望对您有所帮助。可作为要点。欢迎进行编辑。
打开App,查看更多内容
随时随地看视频慕课网APP