Kopieren einer image-Datei von iOS-Foto-Bibliothek (ALAssetsLibrary) in das lokale Verzeichnis einer App?
Bekomme ich Bilder von Foto-Bibliothek über ALAssetsLibrary:
void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop){
if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {
//Copy the photo image to the `/Documents` directory of this App here
}
};
void (^assetGroupEnumerator )(ALAssetsGroup*, BOOL*) = ^(ALAssetsGroup *group, BOOL *stop){
if (group != nil) {
[group enumerateAssetsUsingBlock:assetEnumerator];
}
};
//fetch
ALAssetsLibrary *library = [ALAssetsLibrary new];
[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:assetGroupEnumerator failureBlock:^(NSError *error) {
NSLog(@"failed");
}];
Ich kopieren möchten, bestimmte Bilder in das lokale Verzeichnis (App_home/Documents
), aber ich weiß nicht, wie genau diese Aufgabe durch den Umgang ALAsset Objekte.
- Haben Sie eine variable vom Typ NSURL in der ALAssets Methode?
- Versuchen Sie, fügen Sie den ALAssetsLibrary Methoden-code
- Speichere ich die Bilder von GUID name der Datei mit .png-Erweiterung in der
Documents
- Verzeichnis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit folgenden Code
Für Bild Im Dokument-Verzeichnis
UIImage *image = [UIImage imageNamed:photoFile];
?Documents
Verzeichnis meiner App?file:///
urlKann es nützlich sein für Sie . In diesem outputFileURL ist vom Typ NSURL
Erhalten Sie Foto-raw-binary mit unter Implementierung und speichern Sie Sie zu Ihrem Ziel-Datei.
Einer Sache bewusst sein muss, diese raw-Daten nicht angewendet wird jeder filter mit iOS-Standard-Galerie-App Hinzugefügt, wenn Sie möchten, dass diese filter angewendet haben, sollten Sie diese XMP-mochte-filter aus [ALAssetRepresentation Metadaten] und erstellen Filter mit [CIFilter filterArrayFromSerializedXMP:inputImageExtent:error:], dann wenden Sie Sie auf die volle Auflösung, schließlich speichern Sie das bearbeitete Bild als JPEG-oder PNG-Datei.
Unten zeigt, wie diese Filter.