[SWIFT] [IOS 14] Comment obtenir des données d'image de type Data directement à partir de PHPickerViewController?

PHPickerViewController

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 obtenir les données de l'image à l'aide de loadDataRepresentation (forTypeIdentifier: completionHandler :) de NSItemProvider.

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

[IOS 14] Comment obtenir des données d'image de type Data directement à partir de PHPickerViewController?
Comment obtenir et ajouter des données depuis Firebase Firestore dans Ruby
[Java] Comment convertir du type String en type Path et obtenir le chemin
Comment obtenir un heapdump à partir d'un conteneur Docker
Comment obtenir une classe depuis Element en Java
Comment obtenir l'optimisation SIMD pour HotSpot JavaVM
Je veux obtenir uniquement l'heure à partir des données de type Time ...! [Strftime] * Notes supplémentaires
Comment obtenir la date du type Date de JavaScript auquel les développeurs C # sont accros
Comment repousser la barre oblique \
Comment déployer à partir d'une image Docker locale vers Heroku
Comment transmettre des informations de pixels d'image de manière native depuis Unity
Comment obtenir JDK etc. depuis Oracle avec CLI
Comment écrire une migration du type Rails datetime au type date
[iOS] Comment lire Carthage
[Pratique à retenir !!!] Comment convertir du type LocalDate en chaîne de caractères et de la chaîne de caractères en type LocalDate
Comment utiliser HttpClient de Java (Get)
Comment démarrer avec Slim
Remarques sur l'utilisation de Spring Data JDBC
[Comment installer Spring Data Jpa]
Obtenez des données GTFS à partir du graphique d'OpenTripPlanner
Comment utiliser le type enum Java
Comment passer du HTML à Haml
Essayez d'obtenir des données de la base de données en utilisant MyBatis dans le projet Micronaut + Kotlin
Obtenez l'image sélectionnée en tant que données avec PHPickerViewController (et gérez Live Photo)
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
Appelez l'API Microsoft Emotion en envoyant des données d'image directement depuis Java.
Comment recadrer une image avec libGDX
Comment ajuster TextPosition avec l'extension de clavier iOS
[Rails] Comment convertir ERB en Haml
Comment brouiller l'image (super facile)
[Java] Comment ajouter des données à la liste (add, addAll)
[Note] Comment démarrer avec Rspec
Comment appeler le code Swift 5.3 depuis Objective-C
[Java] Comment obtenir le répertoire actuel
[Flutter] Comment utiliser C / C ++ depuis Dart?
Java: Comment envoyer des valeurs du servlet au servlet
Pour écrire des données de réponse directement dans Spring
Comment obtenir la date avec Java
Comment supprimer des données avec une clé externe
Introduction à kotlin pour les développeurs iOS ④-type
Pour implémenter la publication d'images à l'aide de rails
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
Comment écraser les données Firebase avec Swift
Conversion de type du type java Big Decimal au type String
Comment assembler JSON directement dans Jackson
Comment créer une route directement à partir de l'URL que vous souhaitez spécifier + α
[Spring Boot] Comment obtenir des propriétés dynamiquement à partir d'une chaîne contenue dans une URL
Comment obtenir n'importe quel numéro de chiffre à partir de 2 chiffres ou plus! !!