InkScapeでアイコンを描画し、すべての妥当な解像度(16x16、32x32、... 256x256など)のスプライトを含むICOファイルにエクスポートしたいと思います。どのようにこれを行うことができますか(Photoshop、CorelDrawなどの巨大で高価なソフトウェアを使用せずに)?
InkScapeでアイコンを描画し、すべての妥当な解像度(16x16、32x32、... 256x256など)のスプライトを含むICOファイルにエクスポートしたいと思います。どのようにこれを行うことができますか(Photoshop、CorelDrawなどの巨大で高価なソフトウェアを使用せずに)?
回答:
ImageMagickをすぐに使用できます。
convert -density 384 icon.svg -define icon:auto-resize icon.ico
convert -background none icon.svg -define icon:auto-resize icon.ico
背景を透明に保つために使用します。
magick convert -background none icon.svg -define icon:auto-resize icon.ico
私のために働いた。
コマンドラインソリューション:
1)InkScapeを使用してSVGをPNGにエクスポートします
2)このPNG画像のサイズをImageMagickで希望するサイズに変更します。
magick convert master.png -resize 16x16 16.png
magick convert master.png -resize 32x32 32.png
magick convert master.png -resize 48x48 48.png
3)PNG画像をICOに変換します。
magick convert 16.png 32.png 48.png icon.ico
4)ICOにすべてが含まれていることを確認します。
identify icon.ico
icon.ico[1] ICO 16x16 16x16+0+0 32-bit sRGB 21.2KB 0.000u 0:00.000
icon.ico[0] ICO 32x32 32x32+0+0 32-bit sRGB 21.2KB 0.000u 0:00.000
icon.ico[0] ICO 48x48 48x48+0+0 32-bit sRGB 21.2KB 0.000u 0:00.000
Bashバージョン...
#!/bin/bash
set -ex
svg=$1
size=(16 32 24 48 72 96 144 152 192 196)
echo Making bitmaps from your svg...
for i in ${size[@]}; do
inkscape $svg --export-png="favicon-$i.png" -w$i -h$i --without-gui
done
echo Compressing...
## Replace with your favorite (e.g. pngquant)
# optipng -o7 favicon-*.png
pngquant -f --ext .png favicon-*.png --posterize 4 --speed 1
echo Converting to favicon.ico...
convert $(ls -v favicon-*.png) favicon.ico
## Clean-up maybe?
# rm favicon-*.png
echo Done
使用法:
./favicon.sh your-square-svg-file.svg
パッケージマネージャーのinkscape imagemagick optipng(オプション)が必要です。
Win10とInkscapeがうまくいかなかったので、bashシェル用にこれを再作成する方が簡単だとわかりました。これはLinux用Windowsサブシステム内でテストされましたが、Macでも動作するはずです。
:私は気にサイズ選択するには、このリファレンスを使用しhttps://github.com/audreyr/favicon-cheat-sheetを。size
特定のニーズに合わせてアレイを調整します。
このアプローチをお勧めします:
1)SVGを必要なサイズにエクスポートするスクリプトを作成します。この.batスクリプトをコーディングして、Androidアイコンを作成できるようにしました
@echo off
set file="%~f1"
set path=%~dp1
set inkscape="C:\Program Files\Inkscape\inkscape.exe"
echo Le icone saranno salvate in %path%
echo Produzione icone applicative
echo %file% --export-png="%path%/ic32.png" -w32 -h32 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic48.png" -w48 -h48 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic72.png" -w72 -h72 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic96.png" -w96 -h96 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic144.png" -w144 -h144 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic192.png" -w192 -h192 > %~dp1/commands.txt
echo %file% --export-png="%path%/ic512.png" -w512 -h512 > %~dp1/commands.txt
%inkscape% --shell < %~dp1/commands.txt
erase "%~dp1/commands.txt"
echo Procedura terminata
注:
このパラメーターを使用すると、Inkscapeは対話型のコマンドラインシェルモードに入ります。このモードでは、プロンプトでコマンドを入力すると、コマンドごとにInkscapeの新しいコピーを実行することなく、Inkscapeがコマンドを実行します。この機能は、スクリプトとサーバーの使用に最も役立ちます。新しい機能は追加されませんが、Inkscapeを繰り返し呼び出してコマンドラインタスク(エクスポートや変換など)を実行するスクリプトの速度とメモリ要件を改善できます。シェルモードの各コマンドは、完全な有効なInkscapeコマンドラインである必要がありますが、Inkscapeプログラム名は含みません(例: "file.svg --export-pdf = file.pdf")。(inkscapeのマニュアルを参照)
2)上記のスクリプトに、生成されたすべてのPNGを単一のICOファイルにマージするphilippe-b回答に記載されている変換構文を追加します
3)必要に応じて、エクスポートされたすべてのPNGを削除します(オプション)
このWebサイトには、ほとんどのデバイス(Windows、macOS、Android、iOS)のホーム画面に追加のアイコンが含まれているため、favicon生成に アクセスしますhttps://realfavicongenerator.net/