【问题标题】:Mac app - problems with NSImage drawInRectMac 应用程序 - NSImage drawInRect 的问题
【发布时间】:2012-11-28 16:34:55
【问题描述】:

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

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

在左上角,您会看到滑块的 cap 图像正常绘制,然后填充有模糊的边缘,即使它们使用相同的 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];

左下箭头,同样的情况。

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

我想知道它是否与拉伸图像有关,因为我试图用渲染来填充矩形的图像似乎很糟糕。

感谢您的任何见解。

【问题讨论】:

    标签: objective-c xcode cocoa


    【解决方案1】:

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

    对于一些我使用colorWithPatternImage的区域

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2015-03-01
      • 1970-01-01
      相关资源
      最近更新 更多