Я связываю изображения из библиотеки фотографий с моим табличным представлением с помощью библиотеки ALAsset.
Поэтому всякий раз, когда я связываю миниатюрное изображение ALAsset как изображение ячейки TableView, возникает проблема с изображением Clarity.It Показывается как изображение с низкой четкостью.
Я создал полное разрешение изображения из AlAsset и написал метод генерации миниатюр, я установил результирующее изображение как изображение в виде таблицы.
После выполнения описанного выше процесса я получил миниатюру изображения в полном разрешении в табличном представлении.
Но проблема заключалась в быстродействии с процессом привязки изображений в режиме просмотра первой таблицы (я использовал кеш для привязки изображения после привязки в первый раз. Так что производительность увеличится после первого раза).
Итак, могу ли я узнать, как я могу получить полноразмерное изображение для библиотеки фотографий из ALAsset?
Я написал следующий код в MyTableView CellForRowIndexPath:
UIImageView *importMediaSaveImage=[[[UIImageView alloc] init] autorelease];
importMediaSaveImage.frame=CGRectMake(0, 0, 200,135 );
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
CGImageRef iref = [myasset thumbnail];
if (iref) {
importMediaSaveImage.image = [UIImage imageWithCGImage:iref];
}
etc...
Я попробовал следующий метод, который занимает много времени
UIImageView *importMediaSaveImage=[[[UIImageView alloc] init] autorelease];
importMediaSaveImage.frame=CGRectMake(0, 0, 200,135 );
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
ALAssetRepresentation *rep = [myasset defaultRepresentation];
CGImageRef iref = [rep fullResolutionImage];
UIImage *images;
if (iref) {
images = [UIImage imageWithCGImage:iref];
}
NSData *data = [self photolibImageThumbNailData:images];
importMediaSaveImage.image = [UIImage imageWithData:data];
etc....
photolibImageThumbNailData
-(NSData *)photolibImageThumbNailData:(UIImage *)image{
// begin an image context that will essentially "hold" our new image
UIGraphicsBeginImageContext(CGSizeMake(200.0,135.0));
// now redraw our image in a smaller rectangle.
[image drawInRect:CGRectMake(0.0, 0.0, 200.0, 135.0)];
// make a "copy" of the image from the current context
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// now grab the PNG representation of our image
NSData *thumbData = UIImagePNGRepresentation(newImage);
return thumbData;
}
Спасибо.