Wie kann ich ein Bild (z. B. mit der UIImageWriteToSavedPhotosAlbum() -Methode) mit einem Dateinamen meiner Wahl im privaten/var-Ordner speichern?UIImage Bild mit Dateiname auf dem iPhone speichern
12
A
Antwort
17
Kenny, du hattest die Antwort! Zur Veranschaulichung denke ich immer Code ist hilfreicher.
//I do this in the didFinishPickingImage:(UIImage *)img method
NSData* imageData = UIImageJPEGRepresentation(img, 1.0);
//save to the default 100Apple(Camera Roll) folder.
[imageData writeToFile:@"/private/var/mobile/Media/DCIM/100APPLE/customImageFilename.jpg" atomically:NO];
10
UIImageWriteToSavedPhotosAlbum()
wird nur zum Speichern auf den Fotos verwendet. Um in einem benutzerdefinierten Ordner zu speichern, müssen Sie den UIImage in NSData mit UIImageJPEGRepresentation()
oder UIImagePNGRepresentation()
konvertieren, dann speichern Sie diese NSData an beliebiger Stelle.
+0
Kenny, danke. +1 – erastusnjuki
0
Sie unter Code verwenden können, ohne Verwendung von ALAssetsLibrary ...
NSString *fileName;
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:^{
if([picker sourceType] == UIImagePickerControllerSourceTypeCamera)
{
UIImageWriteToSavedPhotosAlbum(image,nil, nil, nil);
[self performSelector:@selector(GetImageName) withObject:nil afterDelay:0.5];
}
else
{
NSURL *refURL = [info valueForKey:UIImagePickerControllerReferenceURL];
PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[refURL] options:nil];
fileName = [[result firstObject] filename];
}
}];
-(void)GetImageName
{
NSString *str [email protected]"";
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];
if (fetchResult != nil && fetchResult.count > 0) {
str = [[fetchResult lastObject] filename];
}
fileName = str;
}
Eine Beispielspeicherung in den Dokumentenordner NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString * DokumenteDirectory = [Pfade ObjektAtIndex: 0]; NSString * filePath2 = [NSString StringWithFormat: @ "% @ /% @. Jpg", DokumenteVerzeichnis, Dateiname]; NSData * imageData = UIImageJPEGRepräsentation (drawImage.image, 1.0); [imageData writeToFile: filePath2 atomar: NO]; –
[imageData writeToFile: @ "/ privat/var/mobil/Media/DCIM/100APPLE/customImageFilename.jpg" atomar: NEIN]; Was ist dieser private/var/mobile Ordner? Ist dies ein Standard-Ort, um eine Datei in IOS zu schreiben? – user798719
Die Frage ist, ob Apple eine App mit diesem Code erlaubt ... http://stackoverflow.com/questions/2884003/will-the-app-get-rejected-if-you-write-image-to-private -var-mobil-media-dcim-1? lq = 1 –