我能否使用替代微软Office图标在我的应用程序中?

5

由于微软的版权保护,我们无法在非微软应用程序中使用Microsoft Office图标,因为它们的许可证条款不允许这样做。

我正在寻找一些替代的Microsoft Office图标,其许可证允许在商业应用程序中使用。图标的一个重要特点是,任何查看它们的人都应该能够立即认识到它们代表什么(例如Excel)。

有人知道任何替代图标并有链接吗?


你忘了一件对我来说非常重要的事情:尺寸和深度(8 / 16 / 32位)应该是多少?对于我的宽屏幕(1920x1080 / 32位),我只想要巨大而漂亮的32位图标。如果你希望你的应用程序在智能手机上运行,那就不是同样的东西你可能在寻找。 - Olivier Pons
具体而言是32x32和48x48的32位深度。 - Ian
9个回答

6

请勿完全像办公室图标,因为如果是这样,它们将成为版权办公室图标而不是替代品,但我个人喜欢 Silk Icon集。它是免费的,包含许多漂亮实用的图标。

这里还有一个预览所有图标。

至于代表Excel文档等的图标,您可以例如使用page_white_excel图标。认为应该还有一些更通用的电子表格图标,但现在找不到了...


还不错,但不幸的是它们都很小并且是PNG格式,所以不适合我的使用。但是感谢你的建议。 - Ian
发布另一个答案,其中包含更大的图标集。如果您想要不同格式的图标,您可以随时将它们转换为其他格式。PNG的好处是它是无损的,因此它们很适合用作基础。 - Svish

2

我猜你是指文件图标,而不是应用程序。只要安装了Office,你就可以使用代码在运行时加载图标,例如 GetFileIcon("doc", SHGFI_ICONSIZE_LARGE)

    const uint SHGFI_ICON = 0x100;
    const uint SHGFI_USEFILEATTRIBUTES = 0x10; // Use file extension not name
    const uint SHGFI_ICONSIZE_SMALL = 1;
    const uint SHGFI_ICONSIZE_LARGE = 0;
    const uint FILE_ATTRIBUTE_NORMAL = 0;
    const uint FILE_ATTRIBUTE_DIRECTORY = 16;

    [StructLayout(LayoutKind.Sequential)]
    struct SHFILEINFO
    {
        public IntPtr hIcon;
        public IntPtr iIcon;
        public uint dwAttributes;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szDisplayName;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
        public string szTypeName;
    }

    [DllImport("shell32.dll")]
    private static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);

    static System.Drawing.Icon GetFileIcon(string extension, uint size)
    {
        IntPtr hImgResult;    //the handle to the system image list
        SHFILEINFO shinfo = new SHFILEINFO();

        if (string.Compare(extension,"folder",true)==0)
        {
            hImgResult = SHGetFileInfo("", FILE_ATTRIBUTE_DIRECTORY, ref shinfo,
                                       (uint)Marshal.SizeOf(shinfo),
                                        SHGFI_ICON | size);
        }
        else
        {
            hImgResult = SHGetFileInfo(extension, FILE_ATTRIBUTE_NORMAL, ref shinfo,
                                       (uint)Marshal.SizeOf(shinfo),
                                        SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | size);
        }
        return System.Drawing.Icon.FromHandle(shinfo.hIcon);
    }

1
我不确定那是否被允许?“微软产品图标是指示已安装在您的操作系统上的微软产品的缩略图大小的图像。在针对微软产品撰写的培训手册或文档中使用微软图标是允许的。”“微软不允许在广告、软件应用程序等中使用其图标。图标不应作为“艺术品”或设计元素使用。”我知道您没有再分发它们,但我认为它仍然不符合许可证。 - Ian
几乎每个具有文件夹或文件浏览器视图的应用程序都会执行此操作(并且预计会执行此操作)。 - SillyMonkey
然而,像FileDialog这样的控件实际上是微软控件...尽管这确实让人想知道界限在哪里。 - Ian
我更多地是指像 Nero 中的主窗口等。据我所知,如果不使用类似上述的东西,就没有办法使用正确的图标填充列表视图。 - SillyMonkey

1

Visual Studio自带一个图像库,其中包含许多与Office类似风格的图标。这些图标可用于任何应用程序。我不确定它们的版权情况,因此您可能需要在Google上搜索一下。

您可以在以下位置找到图像库zip文件:

C:\program files\Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\1033


我认为Ian谈论的是代表Office产品标志的图标,即Word图标、Excel图标等。 - Romain Verdier
我相信这些只是工具栏等的标准图标。我要找的是实际的应用程序图标。 - Ian

1
你可以看看Deviant Art:

Office icons

但是那里提供的内容很可能已经违反了微软的许可证。

3
很遗憾,其中几乎所有的都是非商业用途。 - Anders Rune Jensen

1
那么Tango Icon Library怎么样?它看起来也很不错,图标种类也很丰富。它们也有png格式的(我认为这是最好的...),还有svg格式的。而且这些png图标的尺寸分别为16x16、22x22和32x32。

我在那里看不到任何类似 MS Office 的图标。 - Fletch
如果它们看起来像 MS Office,那么它们就是 MS Office 图标,这些图标有许可条款,而问题提出者不喜欢这些条款。我假设他想要一个图标集,其中包含常见的 MS Office 操作的表示(剪切、粘贴、保存、新文档等)。 - Svish
我认为他想要一个看起来像Excel图标的东西,但不是由微软生产的。就像一种隐约看起来像绿色斑点的“XL”放在一些单元格之上或其他什么东西上面。 - Fletch

0

Fatcow hosting有一些不错的图标,还有其他一些很棒的图标。你应该在你的制作人员名单中包含一个指向他们网页的链接。不确定“你的制作人员名单”是什么,但我猜整个事情都是社交和SEO策略,如果你的应用程序在公共互联网上,那么你需要把它放在人们和搜索引擎可以找到的地方。

对于一个不在公共互联网上的私人企业应用程序,我想你可以将链接埋得相对较深,并且心安理得。


0

经过更多的评论,这可能不是他想要的。虽然我不是律师,但微软办公软件图标在法律上可能很难找到... - Nick Van Brunt

0

很不幸,我找不到任何类似于Office图标的东西,同时又足够安全,不会侵犯微软版权。在DevianArt上有一些非常好的图标,但它们看起来几乎是从微软那里抄袭过来的,所以我们决定不使用它们。

如果有任何新的发现,我会更新这个答案 :)


0

我喜欢去gnome-look.org浏览图标主题。这些图标集通常受GPL保护,经常包含常见MIME类型的图标(如Word和Excel)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接