En regardant l'exemple de code PHPickerViewController d'Apple, il existe un exemple d'obtention d'une UIImage, mais il n'y a pas d'exemple d'obtention de données. ..
Bien sûr, la conversion d'une UIImage en données est subtile.
Il peut être bon d'abandonner cent étapes et d'utiliser HEIC, JPG ou PNG, mais la méthode pour convertir UIImage en données est "[pngData ()](https://developer.apple.com/documentation/uikit/uiimage/1624096". Il n'y en a que deux, "-pngdata)" et "jpegData (compressionQuality :)". Si vous convertissez le GIF avec ces méthodes, l'animation s'arrêtera.
Après tout, je veux obtenir le type de données directement. Pour une telle personne, j'écrirai ** Comment obtenir des données de PHPickerViewController **.
Vous pouvez l'obtenir en utilisant le NSItemProvider loadDataRepresentation (forTypeIdentifier: completionHandler:)
.
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
results.forEach { result in
result.itemProvider.loadDataRepresentation(forTypeIdentifier: "public.image", completionHandler: { [weak self] data, _ in
guard let data = data else { return }
print(data)
})
}
}
L'astuce consiste à spécifier public.image
pour le forTypeIdentifier (Uniform Type Identifier).
En faisant cela, vous pouvez obtenir des données telles que HEIC, PNG, JPG, GIF.
Si vous souhaitez spécifier les données à acquérir plus en détail, utilisez les [Uniform Type Identifier Concepts] d'Apple (https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html). Veuillez préciser pour référence.
Recommended Posts