创建一个带填充、居中、缩放的 NSImage
我使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我看到的每个示例代码都使用填充计算。 有一些
CocoaDev 上的 NSImage 类别可以做到这一点。Every sample code I saw use a computation for the padding. There is some
NSImage categories on CocoaDevthat do that.