gpt4 book ai didi

objective-c - Mac 应用程序 - NSImage drawInRect 问题

转载 作者:行者123 更新时间:2023-12-03 17:23:37 25 4
gpt4 key购买 nike

使用drawInRect我得到不一致的结果

有时图像绘制正确,有时图像看起来有半个像素的偏差:

enter image description here

在左上角,您会看到 slider 的上限图像正常绘制,然后填充边缘模糊,即使它们是使用相同的 x、y ...绘制的。

// top cap
[topCap drawInRect:NSMakeRect(5, 5, 11, 7)
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1];

// background fill
[topFill drawInRect:NSMakeRect(5, 12, 11, (CGRectGetHeight(aRect) - 23))
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1];

左下箭头,同样的情况。

中心右箭头,类似的情况。您可以看到左盖图像正确渲染,然后背景填充(1 像素宽的图像)变得模糊。

我想知道这是否与拉伸(stretch)图像有关,因为我试图填充矩形的图像渲染效果似乎很差。

感谢您的见解。

最佳答案

如果您知道为什么drawInRect会扭曲图像,请留下答案。这是我发现解决这个问题的方法:

对于某些区域,我使用了colorWithPatternImage

NSColor* backgroundFill = [NSColor colorWithPatternImage:backgroundImage];
[backgroundFill set];
NSRectFill(background);

我遇到的问题是图案原点设置为窗口而不是 View ,因此有时图案会错位。

对于几个区域,我使用了NSDrawThreePartImage,它可以正确平铺图像而不扭曲图像。即使我没有 3 张图像,我也只是将同一张图像放入 3 次。

关于objective-c - Mac 应用程序 - NSImage drawInRect 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13599656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com