Cela peut être une question d'amateur, mais bien que j'ai cherché Stack Overflow de manière extensive, je n'ai pas été en mesure d'obtenir une réponse à mon problème spécifique.Swift - Créer un GIF à partir d'images et le transformer en NSData
J'a réussi à créer un fichier GIF à partir d'un tableau d'images en suivant un exemple 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)
}
Maintenant, je voudrais tourner le GIF réelle dans NSData je peux le télécharger à Firebase, et être capable de le récupérer sur un autre appareil. Pour atteindre mon objectif, j'ai deux options: Soit trouver comment utiliser le code ci-dessus pour extraire le GIF créé (qui semble être créé directement lors de la création du fichier), soit utiliser les images sur les paramètres de la fonction pour créer un nouveau GIF mais le garder au format NSData.
Est-ce que quelqu'un a des idées sur la façon de le faire?
Vous écrivez le GIF à une URL. Vous pouvez donc obtenir les données en utilisant '[NSData dataWithContentOfURL: destinationURL]'. –
Merci .. !! C'est une réponse valide. Écris-le comme tel, donc je peux l'approuver. –
Si vous avez trouvé cette question pertinente, j'apprécierais également un upvote :) –