Cocoa 使用NSImageView和自定义NSView创建缩略图

Cocoa 使用NSImageView和自定义NSView创建缩略图,cocoa,calayer,nsview,nsimageview,Cocoa,Calayer,Nsview,Nsimageview,我需要在我的cocoa应用程序(OS X)中执行以下操作: 允许用户将图像放到NSImageView上 放置图像后,在图像上投影一个固定大小的矩形,指示将用作缩略图的图像区域 允许用户拖动矩形以精确定位所需的缩略图 定位后,用户单击一个按钮,将图像和缩略图保存到文件中 这是我希望得到反馈的第二个要点。我的想法是做到以下几点: 在IB中,在我的视图上放置一个NSImageView,该视图将接受图像 放置完成后,创建另一个NSView(与NSImageView大小完全相同),并将其投影到NSI

我需要在我的cocoa应用程序(OS X)中执行以下操作:

  • 允许用户将图像放到
    NSImageView
  • 放置图像后,在图像上投影一个固定大小的矩形,指示将用作缩略图的图像区域
  • 允许用户拖动矩形以精确定位所需的缩略图
  • 定位后,用户单击一个按钮,将图像和缩略图保存到文件中
这是我希望得到反馈的第二个要点。我的想法是做到以下几点:

  • 在IB中,在我的视图上放置一个
    NSImageView
    ,该视图将接受图像
  • 放置完成后,创建另一个
    NSView
    (与
    NSImageView
    大小完全相同),并将其投影到
    NSImageView
    上,并显示缩略图的矩形。我可能需要子类化
    NSView
    ,这样它是透明的,并且支持矩形的绘制和重新定位
  • 允许用户拖动矩形。用户接受缩略图位置后,通过在
    NSImageView
    中将矩形投影到图像上,从图像创建缩略图
我知道,要处理重叠视图,我需要为父视图打开图层(
setWantsLayer:YES
)。然而,我发现了一些关于这方面的混合报告,其中指出,
NSView
的重叠实例无法完成,只能使用
CALayer
完成。此外,如果有更简单的方法从
NSImageView
捕获缩略图,则非常感谢您的输入