たとえば、複数のサイズで異なる画像を持つ.icoアイコンを見てきました。 16x16、32x32、48x48、128x128、256x256。 Windowsでは、サイズごとに既存の.icoファイルがある場合、この方法で複数のサイズをサポートするアイコンファイルを作成するにはどうすればよいですか? 200以上のファイルに対してこれを行うことを望んでいるので、cmdから行うのが理想的であることに注意してください。
ImageMagick (Windows/Mac/Linux)には convert
と呼ばれるコマンドラインツールが含まれており、1つのアイコンに複数の画像をパックするなど、さまざまな用途に使用できます:
convert 16.png 32.png 48.png 128.png 256.png -colors 256 icon.ico
前のコマンドは5つのPNG画像を取り、それらを1つの.icoファイルに結合します。
他の回答とは異なり、このメソッドは簡単にバッチスクリプトで使用して、複数のアイコンファイルを自動的に生成できます。私のプロジェクトの1つでは、単一のベクター画像(SVG)を使用しており、 Inkscape を使用してさまざまなサイズのpngを生成し、続いてconvert
を使用してアイコンコンテナーを作成しています。これは縮小された例です(bashスクリプト内):
#!/bin/bash
for size in 16 32 48 128 256; do
inkscape -z -e $size.png -w $size -h $size icon.svg >/dev/null 2>/dev/null
done
convert 16.png 32.png 48.png 128.png 256.png -colors 256 icon.ico
ImageMagickのより良いコマンド:
convert in.jpg -define icon:auto-resize=16,48,256 -compress Zip out.ico
[〜#〜] gimp [〜#〜] でこれを無料で行うことができます。これを行うための簡単な説明があります ここ 。
引用するには:
- Gimpで画像を開く
- キャンバスを正方形にします
- レイヤーを画像に合わせてサイズ変更
- レイヤーを.icoファイルの最大サイズ(64ピクセルなど)にスケーリングします。
- レイヤーを複製する
- 複製レイヤーを次のサイズにスケーリングします
- .icoファイルに必要なすべてのサイズの複製/スケーリングを続ける
- .icoとして保存
あなたのケースでは、最大の画像から始めて、複製された画像ごとに縮小するか、新しいレイヤーを追加して、そのレイヤーに必要な特定のアイコン画像をインポートすることができます。
以下は 受け入れられた回答 で Rob W によるものです。サイズ(16、32など)を複数回入力する必要がないように、簡単に調整できます。
#!/bin/bash
files=()
for size in 16 32 48 128 256; do
inkscape -z -e "$size.png" -w "$size" -h "$size" logo.svg > /dev/null 2> /dev/null
files+=("$size.png")
done
convert "${files[@]}" -colors 256 favicon.ico
unlink "${files[@]}"
ここでlogo.svg
は入力(ソース)画像を表し、そこから目的のサイズの小さいファイル(16.png
、32.png
など)を作成し、それを出力(結果)に結合します。アイコンファイル、favicon.ico
。 3行目のサイズのリストを「16 24 32 48 64 72 128」などに変更できます。このスクリプトはG-Manで説明されている手法を使用するため、convert
コマンドはそれに応じて自動的に適応します ここでの彼の回答 ファイル名の配列を作成します。最後に、ファイル名の配列を再度使用して、4行目で作成されたPNGファイルのリンクを解除(削除)します。
コマンドに気づきました:
convert logo.svg -define icon:auto-resize=16,48,256 -compress Zip favicon.ico
( ser400747の回答 に示されているものと同等)実際にスケーリングされたビットマップ画像(品質の低下)とレイヤーの背景の透明性が失われました。
複数のサイズの.PNGを作成し、それらを1つの.ICOファイルにマージするWindowsバッチファイル:
@echo off
set inkScape="C:\SOFTWARE\GRAPHIC\INKSCAPE\inkscape.exe"
set imageMagick="C:\SOFTWARE\DEVELOPER\IMAGEMAGICK\magick.exe"
set fileName=favicon
set importType=svg
set exportType=png
set exportDpi=300
set imageSizes=(16 24 32 48 57 60 64 70 72 76 96 114 120 128 144 150 152 180 192 196 256 300 320 400 450 460 480 512 600)
for %%s in %imageSizes% do (
%inkScape% -z -f %~dp0%fileName%.%importType% -w %%s -h %%s -e %~dp0%fileName%-%%sx%%s.%exportType% -d %exportDpi%
echo CREATED: %fileName%-%%sx%%s.%exportType%
set e=%fileName%-%%sx%%s.%exportType%
call :concat (e)
)
%imageMagick% %exportFileNames%"%~dp0%fileName%.ico"
echo MERGED IN: %fileName%.ico
pause goto :eof
:concat (e) (
set exportFileNames=%exportFileNames%"%~dp0%e%"
)
.PNGファイルが不要な場合は、del FILE
で削除(または削除)するか、削除できるディレクトリ内にすべてのPNGを保存します(%imageMagick% %exportFileNames%"%~dp0%fileName%.ico"
以降)。
それが誰かを助けることを願っています。 :)
Axialis IconMaker がアイコンの問題の最良の解決策であると私は考えています。おそらくあなたのために問題を解決する30日間のトライアルがあります。
私はAxialisを長年使用してきましたが、非常に多くのプロジェクトで、それが本当に価値のある製品であることを証明できます。 30日は必要ありません!ハ!
MSPaintはファイルごとに1つのアイコンしかサポートしないため、サードパーティの icon-editing program を使用する必要があります。 カップル の ここにスレッド があり、アイコンエディターの推奨事項がいくつかあります。
アイコンエディターを使用すると、アイコンの形式を追加する方法は異なりますが、一般的には似ています(ボタンをクリックするか、メニュー項目を選択して新しい形式を追加します)。ほとんどのプログラムでは、アイコンの形式/サイズを追加するときにアイコンファイルをインポートできますが、ほとんどのプログラムでは、サイズを変更して、既存の形式/サイズから新しい形式/サイズを作成できます。
新しいフォーマット/サイズを追加するときにcreate-from-existingオプションを使用する場合は、最大のアイコンフォーマットから作成してください。サイズ変更アルゴリズムで使用できるほとんどのデータがあるため、すでに利用可能です。また、XP/Vistaアイコンを作成するときは、透明なバージョンを使用してください。ほとんどのプログラムは、アルファチャネルを最初から作成するのが得意ではありません。
Matthias Benkmannの png2ico を試してみてください。これは無料で、マルチサイズのPNGを1つのicoファイルにパックできます。