我想在iPhone中创建一个照片库作为现有的照片库。我在scrollviewer中添加图片,这是从照片库中选择的。在添加图像之前,我调整所选图像的大小并将其设置为imageview控件。但是,当我将添加的图像质量与iphone照片库图像质量进行比较时,我的控件图像不好。如何带来质量和内存溢出问题。
-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
// Create a bitmap context.
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
最佳答案
我也遇到过这个问题。我想你用的是带视网膜显示器的iPhone4。即使你不是,你也应该解释清楚。使用UIGraphicsBeginImageContext()
而不是UIGraphicsBeginImageContextWithOptions()
,并使用scale
的UIScreen
属性作为第三个参数。所有ios设备都有scale属性,在iphone 4上设置为2.0;在其他设备上,当我写这篇文章时,设置为1.0。
所以你的代码,随着这些改变,变成
-(UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
// Create a bitmap context.
UIGraphicsBeginImageContextWithOptions(newSize, YES, [UIScreen mainScreen].scale);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}