In Apples PHPickerViewController-Beispielcode gibt es ein Beispiel für das Abrufen eines UIImage, aber es gibt kein Beispiel für das Abrufen von Daten. ..
Das Konvertieren eines UIImage in Daten ist natürlich subtil.
Es mag gut sein, hundert Schritte aufzugeben und HEIC, JPG oder PNG zu verwenden, aber die Methode zum Konvertieren von UIImage in Daten lautet "[pngData ()](https://developer.apple.com/documentation/uikit/uiimage/1624096". Es gibt nur zwei, "-png data)" und "jpegData (compressQuality :)". Wenn Sie das GIF mit diesen Methoden konvertieren, wird die Animation gestoppt.
Immerhin möchte ich den Datentyp direkt abrufen. Für eine solche Person werde ich schreiben ** Wie man Daten von PHPickerViewController erhält **.
Sie können es mit dem NSItemProvider loadDataRepresentation (forTypeIdentifier: finishHandler :)
`abrufen.
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)
})
}
}
Der Trick besteht darin, "public.image" für den forTypeIdentifier (Uniform Type Identifier) anzugeben. Auf diese Weise können Sie Daten wie HEIC, PNG, JPG, GIF abrufen.
Wenn Sie die zu erfassenden Daten genauer angeben möchten, verwenden Sie die [Uniform Type Identifier Concepts] von Apple (https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html). Bitte als Referenz angeben.
Recommended Posts