使用CGContextDrawImage绘制NSImage太模糊了

时间:2018-02-09 12:48:20

标签: objective-c image macos drawingcontext

我使用CGContextDrawImage绘制我的设计图像,但它太模糊了。

请帮助我提高质量。

我用它画画:

// NSImage * design_image

两种尺寸都相同,我使用它进行插值

CGContextRef ct_ref=[context CGContext];
CGContextSetAllowsAntialiasing(ct_ref, YES);
CGContextSetShouldAntialias(ct_ref, YES);
CGContextSetInterpolationQuality(ct_ref, kCGInterpolationHigh);

id hints = [NSDictionary dictionaryWithObject:[NSNumber numberWithInteger:NSImageInterpolationDefault] forKey:NSImageHintInterpolation];

CGImageRef img_ref=[design_image CGImageForProposedRect:&image_dr_rct context:context hints:hints];

CGContextDrawImage(ct_ref, CGRectMake(image_dr_rct.origin.x, image_dr_rct.origin.y, image_dr_rct.size.width, image_dr_rct.size.height), img_ref);

1 个答案:

答案 0 :(得分:0)

如果在绘制图像时获得模糊结果,则问题可能与缩放图像有关。我无法从您的问题中判断出您是将图像绘制得比原始图像更大还是更小,但无论如何都可能会得到不好的结果。您可以尝试不同的插值设置,例如NSImageInterpolationHigh,但最好的选择是以您需要的尺寸创建原始图像。