Как сохранить изображение (например, с помощью метода UIImageWriteToSavedPhotosAlbum()) с именем файла по моему выбору в папку private/var?
UIImage Сохранение изображения с именем файла на iPhone
Ответы (3)
Кенни, у тебя был ответ! Для иллюстрации я всегда думаю, что код более полезен.
//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];
person
erastusnjuki
schedule
16.02.2010
Пример сохранения в папку документов NSArray paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [пути objectAtIndex:0]; NSString *filePath2 = [NSString stringWithFormat:@%@/%@.jpg, DocumentDirectory, FileName]; NSData imageData = UIImageJPEGRepresentation(drawImage.image, 1.0); [imageData writeToFile:filePath2 атомарно:NO];
- person Robert Childan; 22.11.2010
[imageData writeToFile:@/private/var/mobile/Media/DCIM/100APPLE/customImageFilename.jpg атомарно: НЕТ]; Что это за папка private/var/mobile? Это стандартное место для записи файла в ios?
- person user798719; 02.08.2011
Вопрос в том, разрешит ли Apple приложение с этим кодом... stackoverflow.com/questions/2884003/ а>
- person Chris Conway; 24.01.2013
Это все еще разрешено..? Кажется, это не путь к файлу, к которому у меня есть доступ для записи.
- person James Bedford; 27.03.2017
UIImageWriteToSavedPhotosAlbum()
используется только для сохранения фотографий в фотопленку. Чтобы сохранить в пользовательскую папку, вам нужно преобразовать UIImage в NSData с помощью UIImageJPEGRepresentation()
или UIImagePNGRepresentation()
, а затем сохранить этот NSData в любом месте.
person
kennytm
schedule
15.02.2010
Вы можете использовать приведенный ниже код без использования 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 =@"";
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;
}
person
Dimple Shah
schedule
02.06.2017