OSX可可应用程序:在图像质量方面,哪种缩放图像的方法最佳?

时间:2013-11-04 19:38:20

标签: objective-c xcode macos cocoa

目前我正在执行以下操作来重新缩放图像:

CGImageRef resizeCGImage(CGImageRef image, size_t new_width, size_t new_height)
{


CGColorSpaceRef colorspace = CGImageGetColorSpace(image);
CGContextRef context = CGBitmapContextCreate(NULL, new_width,new_height,
                                             8,
                                             new_width*4,
                                             colorspace,
                                             kCGImageAlphaNoneSkipLast);

if (context != NULL)
{
    CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
    CGContextDrawImage(context, CGRectMake(0 , 0, new_width, new_height), image);
    CGImageRef imgRef = CGBitmapContextCreateImage(context);
    CGContextRelease(context);

    return imgRef;
}

return NULL;

}

当我从1920x1080重新缩放到1280x720时,产生的图像质量太低。它最引人注目的是小文本(难以阅读)。

是否有更好的方法(由Cocoa API提供)来重新缩放图像? “更好”是指更好的图像质量。

1 个答案:

答案 0 :(得分:2)

使用CILanczosScaleTransform过滤器尝试Core Image。