我有一个UIscrollView我以这种方式在其中显示图像
- (UIImage *)pageControlImageWithIndex:(NSInteger)index{
NSString *imagePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/t%d.jpg",index];
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:imagePath];
return [UIImage imageWithData:[fileHandle readDataToEndOfFile]];
}
UIImage *image = [self pageControlImageWithIndex:pageNumber];
UIGraphicsBeginImageContext(CGSizeMake(320.0, 164));
[image drawInRect:CGRectMake(0, 0, 320.0, 164.0)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:newImage];
但图片显示有些模糊
在其他视图(UIImageView内部)中以这种方式显示相同的图像
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:[NSHomeDirectory() stringByAppendingFormat:@"/Documents/t%d.jpg",topicNum]];
[topicPicImageView setImage:[UIImage imageWithData:[fileHandle readDataToEndOfFile]]];
产生这种品质
如何为UIScrollView中的图像获得相同的质量?
答案 0 :(得分:2)
UIGraphicsBeginImageContext
将创建一个比例为1.0或非视网膜的上下文。但您很可能希望创建一个与您的设备规模相匹配的上下文。使用新的UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
功能。
替换
UIGraphicsBeginImageContext(CGSizeMake(320.0, 164));
带
UIGraphicsBeginImageContextWithOptions(CGSizeMake(320.0, 164), YES, 0.0);
0.0作为比例参数表示“使用设备主屏幕比例”。如果您的图像具有透明度,则您希望使用NO作为第二个参数。