내 장치 사진을로드하기 위해 AssetsLibrary를 사용하여 사진 갤러리 애플리케이션을 개발 중입니다. 다른 VC에서 무작위 이미지를 표시 할 때 다음과 같은 사실을 알았습니다. 내 전체 이미지가 imageView에로드되는 데 약 1 ~ 2 초가 걸렸습니다 (원시 photosApp보다 훨씬 길다). 또한 "받은 이미지 메모리 경고 "를 표시합니다. 내 표현을 fullScreenImage로 설정하면 경고가 멈추지 만 나는 이것을 원하지 않습니다. 보기에서 부드러운 성능과 고품질 이미지를 위해 무엇을 변경해야합니까?GCD 수신 메모리 경고로 이미지 로딩
이 내가 화면
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",assetsController);
detailImageView = [[UIImageView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:detailImageView];
detailImageView.image = smallImage; //small image is my asset thumbnail and is passed as an argument in my init function
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
ALAsset *asset = [assetsController.albumPics objectAtIndex:assetsController.index];
ALAssetRepresentation *representation = [asset defaultRepresentation];
bigImage = [[UIImage imageWithCGImage:[representation fullResolutionImage]]retain];
dispatch_async(dispatch_get_main_queue(), ^{
detailImageView.image = bigImage;
});
[pool release];
});
}
UPDATE 1
{
UIImageView *detailImageView = [[UIImageView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:detailImageView];
detailImageView.image = smallImage;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
ALAsset *asset = [assetsController.albumPics objectAtIndex:assetsController.index];
ALAssetRepresentation *representation = [asset defaultRepresentation];
UIImage *bigImage = [UIImage imageWithCGImage:[representation fullResolutionImage]];
dispatch_async(dispatch_get_main_queue(), ^{
detailImageView.image = bigImage;
});
[pool release];
});
}
에 내 이미지를 제시 할 VC입니다 : 여기
는 문제가 무엇을 말해 줄 수 있기를 바랍니다, 코드의
[bigImage release] 출시 시도. after detailImageView.image = bigImage; – BhushanVU
@bhuXan이 이미 이미지를로드 한 후에도 경고가 표시됩니다. – QuiBongJin
jpeg 이미지를 사용하거나 JPEG로 변환하면 .... – BhushanVU