我想在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(),并使用scaleUIScreen属性作为第三个参数。所有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;

}

10-08 12:16