【问题标题】:What is the best way of converting a svg into App Icons for both iOS and Android将 svg 转换为 iOS 和 Android 应用程序图标的最佳方法是什么
【发布时间】:2018-07-17 12:08:45
【问题描述】:

我正在寻找一种工具,它可以从 svg 图像为 iOS 和 Android 应用程序生成不同大小的图标。

Google 无法真正为我提供任何“一键式”解决方案。 有没有什么鲜为人知的工具?或者也许是一些简单的批处理脚本可以达到同样的效果?

理想情况下,我可以在我的 Windows 10 机器上运行,但 linux 也可以。

【问题讨论】:

  • 关于android,你试过android studio(Assets Studio)构建的吗?您可以直接导入 svg ,将其更改为 xml 文件。还可以处理 PSD 文件。
  • 我正在尝试使用Flutter 构建一个应用程序,所以没有看过。我认为为此目的存在一个简单的工具,实际上我有点惊讶我还没有找到一个
  • 我知道这不是您所要求的,但我将它用于 png 和 jpg。 github.com/asystat/Final-Android-Resizer 。它生成所有大小的png。更多基于此:Android vs iOS:mdpi = 1x,xhdpi = 2x,xxhdpi = 3x。你应该得到你想要的。
  • 没有投反对票,但我相信tool recommendation is off-topic for SO。可能是 SuperUser 的主题,但您需要稍微研究一下该站点。无论如何,如果您愿意使用命令行,请考虑使用Imagemagick where you can specify DPI,这样您就不需要放大/缩小图像。
  • @xorinzor 好吧,请参阅“有些问题仍然离题,即使它们属于上面列出的类别之一”。因此,即使是关于开发人员使用的软件工具,“要求我们推荐或查找书籍、工具……的问题”也不是主题。

标签: android ios icons


【解决方案1】:

转换 .PNG 后,首先通过此链接 https://svgtopng.com/ 将您的 SVG 转换为 PNG,然后使用此链接 https://makeappicon.com/ 为 Android 和 iOS 创建应用程序图标。

【讨论】:

  • 先将其转换为 PNG 再调整大小会导致质量下降,尤其是在曲线周围很明显
  • 这个网站不那么麻烦;它不会让您输入您的电子邮件:appicon.co
  • @xorinzor,非常重要的一点。通过导出非常高分辨率的版本 (16384x16384) 并将其上传到 appicon.co,您仍然可以获得完美的结果
【解决方案2】:

这已经很晚了,这是针对ANDROID的,但是您实际上可以直接在android studio中转换svg文件,右键单击res文件夹中的drawable文件夹并选择矢量资产:

然后选择本地文件(SVG、PSD)

然后您可以从路径字段中选择 svg 文件,android studio 将直接将该文件转换为资源。

【讨论】:

    【解决方案3】:

    我的选择是https://github.com/sterlp/svg2png。 对于IOS:

    java -jar svg2png.jar -f app_icon.svg -o yourFolder/Assets.xcassets/AppIcon.appiconset -c ios_icon.json
    

    像这样使用 ios_icon.json:

    {
      "files": [
        {
          "nameSuffix": "-20x20@1x",
          "height": 20,
          "width": 20
        },
        {
          "nameSuffix": "-20x20@2x",
          "height": 40,
          "width": 40
        },
        {
          "nameSuffix": "-20x20@3x",
          "height": 60,
          "width": 60
        },
        {
          "nameSuffix": "-29x29@1x",
          "height": 29,
          "width": 29
        },
        {
          "nameSuffix": "-29x29@2x",
          "height": 58,
          "width": 58
        },
        {
          "nameSuffix": "-29x29@3x",
          "height": 87,
          "width": 87
        },
        {
          "nameSuffix": "-40x40@1x",
          "height": 40,
          "width": 40
        },
        {
          "nameSuffix": "-40x40@2x",
          "height": 80,
          "width": 80
        },
        {
          "nameSuffix": "-40x40@3x",
          "height": 120,
          "width": 120
        },
        {
          "nameSuffix": "-60x60@2x",
          "height": 120,
          "width": 120
        },
        {
          "nameSuffix": "-60x60@3x",
          "height": 180,
          "width": 180
        },
        {
          "nameSuffix": "-76x76@1x",
          "height": 76,
          "width": 76
        },
        {
          "nameSuffix": "-76x76@2x",
          "height": 152,
          "width": 152
        },
        {
          "nameSuffix": "-83.5x83.5@2x",
          "height": 167,
          "width": 167
        },
        {
          "nameSuffix": "-1024x1024@1x",
          "height": 1024,
          "width": 1024
        }
      ]
    }
    

    只需确保生成的 png 文件与您在 AppIcon.appiconset/Contents.json 中的配置相匹配。我的是

    {
      "images" : [
        {
          "idiom" : "iphone",
          "scale" : "2x",
          "size" : "20x20",
          "filename" : "app_icon-20x20@2x.png"
        },
        {
          "idiom" : "iphone",
          "scale" : "3x",
          "size" : "20x20",
          "filename" : "app_icon-20x20@3x.png"
        },
        {
          "idiom" : "iphone",
          "scale" : "2x",
          "size" : "29x29",
          "filename" : "app_icon-29x29@2x.png"
        },
        {
          "idiom" : "iphone",
          "scale" : "3x",
          "size" : "29x29",
          "filename" : "app_icon-29x29@3x.png"
        },
        {
          "idiom" : "iphone",
          "scale" : "2x",
          "size" : "40x40",
          "filename" : "app_icon-40x40@2x.png"
        },
        {
          "idiom" : "iphone",
          "scale" : "3x",
          "size" : "40x40",
          "filename" : "app_icon-40x40@3x.png"
        },
        {
          "idiom" : "iphone",
          "scale" : "2x",
          "size" : "60x60",
          "filename" : "app_icon-60x60@2x.png"
        },
        {
          "idiom" : "iphone",
          "scale" : "3x",
          "size" : "60x60",
          "filename" : "app_icon-60x60@3x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "1x",
          "size" : "20x20",
          "filename" : "app_icon-20x20@1x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "2x",
          "size" : "20x20",
          "filename" : "app_icon-20x20@2x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "1x",
          "size" : "29x29",
          "filename" : "app_icon-29x29@1x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "2x",
          "size" : "29x29",
          "filename" : "app_icon-29x29@2x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "1x",
          "size" : "40x40",
          "filename" : "app_icon-40x40@1x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "2x",
          "size" : "40x40",
          "filename" : "app_icon-40x40@2x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "1x",
          "size" : "76x76",
          "filename" : "app_icon-76x76@1x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "2x",
          "size" : "76x76",
          "filename" : "app_icon-76x76@2x.png"
        },
        {
          "idiom" : "ipad",
          "scale" : "2x",
          "size" : "83.5x83.5",
          "filename" : "app_icon-83.5x83.5@2x.png"
        },
        {
          "idiom" : "ios-marketing",
          "scale" : "1x",
          "size" : "1024x1024",
          "filename" : "app_icon-1024x1024@1x.png"
        }
      ],
      "info" : {
        "author" : "xcode",
        "version" : 1
      }
    }
    

    对于 Android,请参阅https://github.com/sterlp/svg2png 上的 README 或创建您自己的 json 配置。

    【讨论】:

    • 请在您的回答中添加一些细节。
    • 当然!荣幸!请给我一些见解,哪一部分有缺乏细节的感觉。从我的角度来看,这很难。
    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 2016-04-01
    • 2016-04-10
    • 2018-04-27
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多