我将一个大图像分成小图像,用GPUImagePicture / GPUImageView显示如下。 它适用于iPhone5s,iPad2,iPod touch 5上大到3696x2448(~9M像素)的图像。 它在iPad 3上失败:大图像底部的大约三分之一的小图像显示为黑色。小图像的尺寸为512x512 - 我需要这个小尺寸,以便在后期快速处理。
如果我将小图像的大小增加到1024x1024,那么它可以正常工作(没有黑色输出)。 然而,随着这个更大(1024x1024)的尺寸,应用程序在iPod touch 5上变得非常迟钝。 - 第一次正确显示所有图像[picture processImage];叫做。我试图调整亮度时出错。
[从我的应用输出。红色矩形表示小图像] http://i.stack.imgur.com/dcY4T.png (我没有足够的声誉来发布图片)。
设置过滤器:
for (NSUInteger i = 0; i < [imageArray count]; i++)
{
UIImage *img = [imageArray objectAtIndex:i];
CGRect frame = CGRectMake(0, 0, img.size.width, img.size.height);
GPUImagePicture *picture = [[GPUImagePicture alloc] initWithImage:img];
[_sourcePicArray addObject:picture];
GPUImageBrightnessFilter *filter = [[GPUImageBrightnessFilter alloc] init];
[_filterArray addObject:filter];
[picture addTarget:filter];
GPUImageView *gpuVw = [[GPUImageView alloc]initWithFrame:frame];
[imageArray addObject:gpuVw];
[filter addTarget:gpuVw];
[picture processImage];
[picture release];
[filter release];
}
// Brightness adjust
for (NSUInteger i = 0; i < [_filterArray count]; i++) {
GPUImagePicture *picture = [_sourcePicArray objectAtIndex:i];
GPUImageBrightnessFilter *filter = [_filterArray objectAtIndex:i];
[filter setBrightness:radius];
[picture processImage];
}
如何摆脱这种恼人的黑色输出?