Ash*_*ish 3 macos cocoa nsimage osx-snow-leopard
我必须制作一个原型应用程序,我将一个小图像叠加到给定文件夹的文件图标上.假设我有一个文件夹/ MyDocuments /并且有三个文件/MyDocuments/Doc1.rtf /MyDocuments/Doc1.pdf和/MyDocuments/Doc1.jpg我有一个图像myicon.png,现在我必须叠加这个图像myicon .png覆盖/ MyDocuments /中存在的所有三个文件的文件图标
我知道我可以使用NSWorkspace sharedWorkspace中的方法来获取和设置这些文件的文件图标,但我不知道如何使用图像myicon.png并将其叠加在这些文件的现有图标上.
如果有人看过Dropbox应用程序(dropbox.com),那么它与您在Dropbox文件夹中看到更改图标的方式类似
我假设它将使用NSImage完成,但我不知道如何做到这一点.
注意:图像myicon.png将仅占据这些文件原始图标的左上角部分,即图像不应与现有图标完全重叠,但只应占用左上角的1/4部分.
作为对 Peter Hosey 回答的补充,这里有一些稍微修改过的示例代码:
http://cocoadev.com/forums/comments.php?DiscussionID=221
NSImage *origImage = [sourceImage copy]; // Copy to avoid modifying the original.
NSSize previewSize = NSMakeSize([origImage size].width / 4.0, [origImage size].height / 4.0);
NSImage *previewImage = [[NSImage alloc] initWithSize:previewSize];
[previewImage lockFocus];
[origImage drawInRect:NSMakeRect(0, 0, previewSize.width, previewSize.height)
fromRect:NSZeroRect // Draws full image.
operation:NSCompositeSourceOver
fraction:1.0];
[previewImage unlockFocus];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1350 次 |
最近记录: |