Ich habe eine iPad-App, die Bilder aus der Fotos-Anwendung mit ALAssetsLibrary
aufnimmt und dann auf den Webserver hochlädt. Bis jetzt funktioniert alles gut.
Wenn ich jetzt zur Fotoanwendung gehe und ein Bild bearbeite (zum Beispiel zuschneide) und hochlade, wird das ursprüngliche uncropped hochgeladen. Ich speichere / speichere das Foto mit der Asset-URL.
Beispiel:
%Vor% Dies ist kein ALAssetsLibrary
Cache-Problem, weil ich versucht habe, zu bearbeiten, kill app, start, upload hochladen, die noch das alte Bild hochlädt.
Frage:
Ich habe das gleiche Verhalten erkannt und vor einiger Zeit einige Tests durchgeführt. Lassen Sie mich meine Ergebnisse mit Ihnen teilen:
Das bearbeitete Bild, das Sie nur über die fullScreenImage-Methode erhalten. Dies wird auch in der Dokumentation von Apple erwähnt: "In iOS 5 und höher gibt diese Methode ein vollständig zugeschnittenes, gedrehtes und angepasstes Bild zurück - genau so, wie es ein Benutzer in Fotos oder in der Bildauswahl sehen würde."
Die Methoden fullResolutionImage und getBytes geben das unbearbeitete Bild zurück. Die Bearbeitungsparameter wie Zuschneiden werden jedoch in den Bildmetadaten gespeichert. Diese Metadateninfo wird jedoch nur von Apple Apps wie Aperture und iPhoto interpretiert.
Sie können herausfinden, ob ein Bild bearbeitet wurde, indem Sie die Bildmetadaten prüfen. Vergleichen Sie die Metadaten eines unbearbeiteten und bearbeiteten Bildes und suchen Sie nach Unterschieden in den Metadatenfeldern.
In der obigen Funktion übergeben ALAsset-Wert dann das bearbeitete Bild ...:)
Oberhalb des Codes, um ein bearbeitetes Bild aus den Metadaten zu erhalten
Wenn Sie mit Vollbild gehen, erhalten Sie auch das bearbeitete Bild
%Vor%Tags und Links objective-c ios ipad alassetslibrary