创建一个带填充、居中、缩放的 NSImage

发布于 2024-08-01 18:21:08 字数 368 浏览 7 评论 0原文

我使用 NSImageCell 将基于任意大小图像的固定大小图标放入 NSOutlineView 中。

NSImageCell 会很好地缩小图像,但我找不到在缩放图像周围添加填充的方法。 如果没有填充,这些行在我看来很难看。

我解决这个问题的第一步是创建一个恒定大小的新图像,插入其填充边界,然后使用 drawInRect:fromRect:operation:fraction: 绘制原始图标的缩小版本。

这对于方形图像非常有用。 我猜想 NSImage 上有一个方便的方法可以在给定的矩形中绘制居中的、以恒定纵横比缩放的图像版本,但我找不到它。

显然我可以计算出与原始图像具有相同长宽比的适当矩形,但我不想重新发明轮子......

I'm putting a fixed size icon based on an arbitrarily sized image into an NSOutlineView using an NSImageCell.

NSImageCell will scale the image down nicely, but I can't find a way to add padding around the scaled image. The rows look ugly to my eye without padding.

My first pass at fixing this problem was to create a new image of constant size, inset its bounds for padding, then use drawInRect:fromRect:operation:fraction: to draw a scaled down version of the original icon.

That works great for square images. I would've guessed there'd be a convenience method on NSImage to draw a centered, scaled-with-constant-aspect-ratio version of the image in a given rect, but I can't find it.

Obviously I can calculate an appropriate rect with the same aspect ratio as the original image, but I'd rather not reinvent the wheel...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

2024-08-08 18:21:08

我看到的每个示例代码都使用填充计算。 有一些 CocoaDev 上的 NSImage 类别 可以做到这一点。

Every sample code I saw use a computation for the padding. There is some NSImage categories on CocoaDev that do that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文