【问题标题】:Steam Game IconSteam 游戏图标
【发布时间】:2014-07-11 03:22:24
【问题描述】:

我正在制作一个文件浏览器,对于缩略图视图,它需要一个文件的图标。除了 Steam 游戏,我得到了所有文件的图标。我环顾四周,找不到像 Windows 那样获取图标的方法。

编辑: 这是我目前用来获取文件图标的:

public static Bitmap GetBigImage(string path, Size size)
    {
        Bitmap bmp;
        string ext = System.IO.Path.GetExtension(path);

        if (ext == ".exe")
        {
            Icon ico = Icon.ExtractAssociatedIcon(path);
            bmp = ico.ToBitmap();
            ico.Dispose();
        }
        else
        {
            if (imageType.Contains(ext.Replace(".", "")))
            {
                Image img = Image.FromFile(path);
                bmp = new Bitmap(img, new Size(size.Width - 20, 80));
                img.Dispose();
            }
            else
            {
                Icon ico = Win32.GetLargeIconForExtension(ext);
                bmp = ico.ToBitmap();
                ico.Dispose();
            }
        }

        return bmp;
    }

这是我想要获得的路径 steam://rungameid/209170

GetBigImage 中,如果我查看路径是否包含 steam://(在任一 if 语句中),该方法仍然不返回任何图标。

【问题讨论】:

  • 你能给我们一个你试图获取图标的文件的例子吗?例如。它的完整路径和名称是什么。我有蒸汽,我可能会玩弄它并弄清楚。

标签: c# image icons steam


【解决方案1】:

有一个 Steam 游戏数据库here。每个条目都会指向一个页面,其中包含指向游戏图标的链接。

您的 ID 指向this 页面,其中this 链接指向该图标。

请注意,“clienticon”字段下通常有一个真实的图标,还有一个奇怪的名为“icon”的普通jpg!

对于资源管理器类型的应用,我建议缓存这些图标。

希望这会有所帮助。

【讨论】:

  • 非常感谢。我一定会缓存这些图标。
  • 我需要一个 API 以编程方式获取游戏图标。你知道在哪里可以找到图标的哈希码吗? link here 的格式为 https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/{appid}/{hash}.ico
  • 抱歉,不,我没有。
【解决方案2】:

你试过了吗,

Icon.ExtractAssociatedIcon

来自 System.Drawing 命名空间?

http://msdn.microsoft.com/en-us/library/system.drawing.icon.extractassociatedicon(v=vs.110).aspx

【讨论】:

  • 是的,它返回一个空白图标
猜你喜欢
  • 2018-03-02
  • 2022-12-12
  • 2018-02-11
  • 2021-11-29
  • 2015-01-20
  • 2021-01-26
  • 2016-03-09
  • 2020-10-21
  • 2015-02-15
相关资源
最近更新 更多