`NSURL *urlA = [info valueForKey:@"PHImageFileURLKey"];`
mais lorsque je tente d'enregistrer l'image en utilisant l'URL alors URL est nulle.
`NSData *pngData =[NSData dataWithContentsOfURL:urlA options:NSDataReadingMapped error:nil];`
`NSURL *urlA = [info valueForKey:@"PHImageFileURLKey"];`
mais lorsque je tente d'enregistrer l'image en utilisant l'URL alors URL est nulle.
`NSData *pngData =[NSData dataWithContentsOfURL:urlA options:NSDataReadingMapped error:nil];`
actif = Vous devez passer votre PHAsset.
PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init];
[[PHImageManager defaultManager]
requestImageDataForAsset:asset
options:imageRequestOptions
resultHandler:^(NSData *imageData, NSString *dataUTI,
UIImageOrientation orientation,
NSDictionary *info)
{
NSLog(@"info = %@", info);
if ([info objectForKey:@"PHImageFileURLKey"]) {
NSURL *path = [info objectForKey:@"PHImageFileURLKey"];
// if you want to save image in document see this.
[self saveimageindocument:imageData withimagename:[NSString stringWithFormat:@"DEMO"]];
}
}];
-(void) saveimageindocument:(NSData*) imageData withimagename:(NSString*)imagename{
NSString *writePath = [NSString stringWithFormat:@"%@/%@.png",[Utility getDocumentDirectory],imagename];
if (![imageData writeToFile:writePath atomically:YES]) {
// failure
NSLog(@"image save failed to path %@", writePath);
} else {
// success.
NSLog(@"image save Successfully to path %@", writePath);
}
}
+ (NSString*)getDocumentDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
Vérifier l'image que le mode paysage ou en mode portrait
if (chooseimage.size.height >= chooseimage.size.width)
{
Islandscape = NO;
}else{
UIImage* landscapeImage = [UIImage imageWithCGImage:chooseimage.CGImage
scale:chooseimage.scale
orientation:UIImageOrientationLeft];
self.imgPreviewView.image = landscapeImage;
self.imgPreviewView.contentMode = UIViewContentModeScaleAspectFill;
Islandscape = YES;
}
Ajouter cette autorisation dans le fichier Info.plist
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) would like to access your photo library to let you select a picture.</string>
Merci pour les années j'ai essayé vos ans mais je reçois ce type d'erreur imprime sur journal :: réglage des informations de sécurité: Opération non autorisée et aussi j'essaie d'enregistrer l'image de Phasset URL à document Direcory, mais je reçois L'erreur - accès non permettre pour raison de sécurité. – Keyur
vous devez ajouter une chose dans le fichier info.plist que j'ai ajouté dans ma réponse. @KeyurAspiration –
j'ai déjà ajouté dans info.plist comme Photo, Caméra, MicroPhone Description Access, une autre chose et un autre tableau d'images enregistrer dans le répertoire de documents avec hors avertissement de la mémoire issue.so s'il vous plaît dites-moi. – Keyur
Vous pouvez obtenir le imageURL de PHContentEditingInput:
Swift:
asset.requestContentEditingInput(with: PHContentEditingInputRequestOptions()) { (eidtingInput, info) in
if let input = eidtingInput, let imgURL = input.fullSizeImageURL {
// imgURL
}
}
Objective-C:
[asset requestContentEditingInputWithOptions:[PHContentEditingInputRequestOptions new] completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {
NSURL *imageURL = contentEditingInput.fullSizeImageURL;
}];
@ a-Tuo Veuillez répondre en Objective-C parce que je n'ai aucune idée dans Swift – Keyur
@KeyurAspiration Avez-vous ajouté la touche "Confidentialité - Description de l'utilisation de la photothèque" pour obtenir la permission d'accéder à Phot os? –
@ a-tuo Oui, j'ai déjà donné cette "Confidentialité - Description de l'utilisation de la photothèque" – Keyur
vérifier ma réponse espère que vous êtes clair avec réponse –