目前我正在执行以下操作来重新缩放图像:
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提供)来重新缩放图像? “更好”是指更好的图像质量。
答案 0 :(得分:2)
使用CILanczosScaleTransform过滤器尝试Core Image。