Есть ли способ нарисовать текст в с субпиксельным сглаживанием? Текст нарисован на непрозрачном белом фоне, и я попытался использовать функцию CGContextSetShouldSmoothFonts
, но это, похоже, не помогает.Подпиксельное сглаживание в NSBitmapImageRep
NSBitmapImageRep *bm = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL pixelsWide:300 pixelsHigh:300 bitsPerSample:8 samplesPerPixel:4 hasAlpha:YES isPlanar:NO colorSpaceName:NSCalibratedRGBColorSpace bytesPerRow:0 bitsPerPixel:0];
[NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithBitmapImageRep:bm]];
[[NSColor whiteColor] set];
NSRectFill(NSMakeRect(0, 0, 300, 300));
CGContextRef ctx = NSGraphicsContext.currentContext.graphicsPort;
CGContextSetShouldSmoothFonts(ctx, true);
[@"Example" drawAtPoint:NSZeroPoint withAttributes:nil];
[[bm TIFFRepresentation] writeToFile:[@"~/Desktop/bitmap.tiff" stringByExpandingTildeInPath] atomically:NO];
я могу получить текст разглаживанию работать, когда я рисую в NSImage
с использованием -[NSImage lockFocus]
, но это не является надежным при его запуске на дисплее Retina.