我正在CGImageDestinationAddImage一个快速的项目中使用从照片创建动画GIF文件.这一切都很好,除了最终GIF中的底行像素总是相同的(这些是我添加的第一张照片中的像素).照片大小相同(600x600像素).
我注意到这发生在运行iOS 9.3.5的iPad 2上,但它在运行iOS 10.2的iPad Pro 12.9上工作正常.所以这可能与32位与64位或iOS版本有关.
有谁知道这是一个已知问题,还是我做错了什么?我在下面粘贴了我的代码.
// Load photos
var photos = [Data]()
for index in 1...5 {
if let imageDataURL = Bundle.main.url(forResource: "photo_\(index)", withExtension: "jpg"),
let data = try? Data(contentsOf: imageDataURL, options: []) {
photos.append(data)
}
}
// Create the GIF
let temporaryDirectory = NSTemporaryDirectory()
let url = URL(fileURLWithPath: temporaryDirectory).appendingPathComponent("slideshow.gif")
guard let destination = CGImageDestinationCreateWithURL(url as CFURL, kUTTypeGIF, photos.count, nil) else {
return
}
// Repeat forever by setting the loop count to 0
let …Run Code Online (Sandbox Code Playgroud)