问候!我有一个问题,谷歌搜索没有带来任何结果......
我为我的 NSView(子类)实现了 drawRect 方法来绘制一些阴影和半透明填充。一切看起来都很棒!但现在我需要从我的 NSView (制作快照)创建一个 NSImage 用于拖放目的。
它可以工作,但以某种不同的方式绘制:更暗并且没有应有的对比度。
为什么?也许是因为 NSGraphicContext 不同的选项?需要帮助和/或建议!
下面是从 NSView 获取 NSImage 的代码:
- (NSImage *)makeImageSnapshot {
NSSize imgSize = self.bounds.size;
NSBitmapImageRep * bir = [self bitmapImageRepForCachingDisplayInRect:[self bounds]];
[bir setSize:imgSize];
[self cacheDisplayInRect:[self bounds] toBitmapImageRep:bir];
NSImage* image = [[[NSImage alloc] initWithSize:imgSize] autorelease];
[image addRepresentation:bir];
return image;
}
以下是视觉比较的图像:
- 正常 - 由 drawRect 通常调用绘制:http ://cl.ly/image/213C1Y1V0v2H
- 不好 - 捕获到 NSImage:http ://cl.ly/image/183q442S2J14
认为差异可能看起来很小,相信我 - 在使用应用程序时很明显。我不明白为什么会这样。并希望有人可以帮助...
提前致谢!