Это может быть любительский вопрос, но хотя я искал Stack Overflow расширяемо, я не смог получить ответ по моей конкретной проблеме.Swift - Создайте GIF из изображений и превратите их в NSData
Я был успешным в создании GIF-файла из массива изображений, следуя примеру GitHub:
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 String): frameDelay]
]
for img in images {
// Convert an NSImage to CGImage, fitting within the specified rect
let cgImage = img.CGImageForProposedRect(nil, context: nil, hints: nil)!
// Add the frame to the GIF image
CGImageDestinationAddImage(destinationGIF, cgImage, properties)
}
// Write the GIF file to disk
CGImageDestinationFinalize(destinationGIF)
}
Теперь я хотел бы, чтобы включить фактические GIF в NSData, так что я могу загрузить его Firebase, и иметь возможность получить его на другом устройстве.
Для достижения моей цели у меня есть два варианта: либо найти, как использовать приведенный выше код, чтобы извлечь созданный GIF (который, кажется, непосредственно создается при создании файла), либо использовать изображения по параметрам функции для создания нового GIF, но сохраните его в формате NSData.
Есть ли у кого-нибудь идеи о том, как это сделать?
Вы пишете GIF к URL. Таким образом, вы можете получить данные, используя '[NSData dataWithContentOfURL: destinationURL]'. –
Спасибо .. !! Это правильный ответ. Напишите это так, поэтому я могу это одобрить. –
Если бы вы нашли этот вопрос актуальным, я также был бы признателен за upvote :) –