Ich habe ein Array mit PHAsset
Objekte gefüllt (https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html), und ich möchte wissen, wie ich sie in eine UIImage konvertieren und dann in einem Array speichern kann.Wie konvertiert man PHAsset zu UIImage in Objective-C
Das Array mit den PHAsset Objekten self.assets
genannt und hier ist das, was ich bisher habe:
PHImageManager *manager = [PHImageManager defaultManager];
CGFloat scale = UIScreen.mainScreen.scale;
NSMutableArray *images = [NSMutableArray arrayWithCapacity:[self.assets count]];
for (int i = 0; i < [self.assets count]; i++) {
CGSize targetSize = CGSizeMake(scale, scale);
[manager requestImageForAsset:[self.assets objectAtIndex:i]
targetSize:targetSize
contentMode:PHImageContentModeAspectFill
options:self.requestOptions
resultHandler:^(UIImage *image, NSDictionary *info){
[images addObject:image];
}];
}
self.requestOptions eine Eigenschaft im .h ist
@property (nonatomic, strong) PHImageRequestOptions *requestOptions;
und in der viewDidLoad Ich mache das:
self.requestOptions = [[PHImageRequestOptions alloc] init];
self.requestOptions.resizeMode = PHImageRequestOptionsResizeModeExact;
self.requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
Aber nach ein paar Debugging, behalte ich zu sehen, dass self.assets
folgende Werte hat:
(
<PHAsset: 0x1743828a0> 3B6D658D-EC76-43A1-9793-35D889E9CF15/L0/001 mediaType=1/0, assetSource=3, (2448x2448), creationDate=2015-07-27 02:02:46 +0000, location=1, hidden=0, favorite=0 ,
<PHAsset: 0x174382970> 50F05575-71D2-446B-BD1E-8E3250E375AD/L0/001 mediaType=1/0, assetSource=3, (2448x2448), creationDate=2015-07-27 02:02:47 +0000, location=1, hidden=0, favorite=0
)
und images
ist leer. Weiß jemand, wie ich die PHAssets in UIImages umwandeln und sie dem images
Array hinzufügen kann? Jede Hilfe wird geschätzt. Vielen Dank!
Dieser Code funktioniert nicht! UIImage * Bild, das über resultHandler zurückgegeben wird, ist immer Null. –
Geben Sie diesem Mann einen Keks. requestOptions.synchronous = JA; Dies hat meinen mysteriösen Fehler beim Anfordern eines Assets behoben. '[Generic] Das Erstellen eines Bildformats mit unbekanntem Typ ist ein Fehler – Billy