【问题标题】:NSImage coordinateNSImage 坐标
【发布时间】:2010-10-11 07:29:23
【问题描述】:

大家好, 我有一个大图像,然后我通过以下方式提取图像的一部分:

[mBaseImage lockFocus];
NSBitmapImageRep* bitmapImageRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect: NSMakeRect(startX,startY,width,height)];
[mBaseImage unlockFocus];

接着是:

extractedImage = [[NSImage alloc] initWithSize:[bitmapImageRep size]];
[extractedImage addRepresentation:bitmapImageRep];

extractImage 是 NSImage *.

后来,当我尝试使用 NSDrawNinePartImage 绘制提取的图像时,我意识到当我按照 http://www.karlkraft.com/index.php/2007/11/14/nsdrawninepartimage/ 的示例指定 9 个部分时 我意识到当我指定 0,0 时,它显示图像的左上角,这意味着 0,0 是左上角,而不是链接中示例中的左下角。我尝试设置 setFlipped 但它似乎只是翻转图像。有谁知道如何将坐标返回到左下角 0,0 的位置?

哦,我忘了提到我将图像用作按钮,所以它显示为 NSButton。

问候, 韩

【问题讨论】:

  • “它以 NSButton 的形式呈现”是什么意思?无法将 NSImage 放入视图层次结构中,那么您究竟对图像做了什么,以及调用 NSDrawNinePartImage 的对象是什么?
  • 对不起。这是自定义 NSButton 的一部分。自定义 NSButton 可以有一个 NSImage。 drawRect 被覆盖以包含 [image drawInRect:....];以便在显示按钮时绘制图像。在 drawInRect 函数中,检查是否设置了标志 useTile,如果是,则 drawInRect 将调用函数 drawWithTiles 并对图像进行适当的分割,坐标由用户定义,然后将 9 个图像传递给 NSDrawNinePartImage .
  • 您所遵循的示例将在分辨率独立的非整数比例因子下失败。 :-/ 请对您在网上找到的代码持怀疑态度。它应该使用 NSBitmapImageRep 作为目标图块而不是 NSImage,因为该代码专门与像素相关联。

标签: objective-c cocoa nsimage


【解决方案1】:

好的,我找到了。这是导致所有混淆的代码中某处的流氓 [image setFlip:...]..

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 2011-02-18
  • 1970-01-01
  • 2011-08-16
  • 2013-04-30
相关资源
最近更新 更多