Iphone 像素化图像视图

Iphone 像素化图像视图,iphone,ios,uiimageview,Iphone,Ios,Uiimageview,我在使用UIImageView类渲染图像时遇到问题。像素化似乎主要发生在我试图展示的图像的边缘 我尝试更改属性“使用边缘抗锯齿渲染”但没有效果 图像文件包含的图像比屏幕上显示的图像大 它似乎在彻底破坏图像的质量,然后再显示出来。我试图在这里发布图片,但StackOverflow拒绝了我的特权。这里有一个链接,指向正在发生的事情 这张照片中的太阳就是我所说的问题。有什么想法吗?您的图像有多大,imageView有多大?不要依赖UIImageView来缩小它的尺寸。您可能需要手动调整其大小。这也会

我在使用UIImageView类渲染图像时遇到问题。像素化似乎主要发生在我试图展示的图像的边缘

我尝试更改属性“使用边缘抗锯齿渲染”但没有效果

图像文件包含的图像比屏幕上显示的图像大

它似乎在彻底破坏图像的质量,然后再显示出来。我试图在这里发布图片,但StackOverflow拒绝了我的特权。这里有一个链接,指向正在发生的事情


这张照片中的太阳就是我所说的问题。有什么想法吗?

您的图像有多大,imageView有多大?不要依赖UIImageView来缩小它的尺寸。您可能需要手动调整其大小。这也会提高内存效率

动态图像大小调整速度快且质量低。对于捆绑的图像,额外的捆绑空间包括缩小的版本是值得的。对于下载的图像,在设置图像属性之前,通过将核心图形调整为新的
UIImage
,可以获得更好的结果

CGSize newSize = CGSizeMake(newWidth, newHeight);

UIGraphicsBeginImageContextWithOptions(newSize, // context size
                                       NO,      // opaque?
                                       0);      // image scale. 0 means "device screen scale"
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
[bigImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

使用以下方法使用图像获取特定的高度宽度

+ (UIImage*)resizeImage:(UIImage*)image withWidth:(int)width withHeight:(int)height
{
    CGSize newSize = CGSizeMake(width, height);
    float widthRatio = newSize.width/image.size.width;
    float heightRatio = newSize.height/image.size.height;

    if(widthRatio > heightRatio)
    {
        newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio);
    }
    else
    {
        newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio);
    }


    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

此方法返回NewImage,具体大小由您指定

我使用如下类别:
>>>github链接我会试试看!我一直对此表示怀疑。。我应该凭直觉去做的谢谢你的解释。我将试一试。当您指定的框架属性(特别是原点)不是整数时,UI元素中可能会出现这种类型的问题。指定图像图幅时,请尝试使用
(int)
强制转换尺寸。