回答:
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
.ico
に含まれるサイズに基づいて、a を複数のPNGに変換しますか?
convert favicon.ico favicon.png
生成favicon-0.png
、favicon-1.png
フレーム内のすべてのアイコンのために、等。画像の寸法を知りたい場合identify
は、PNGファイルでコマンドを使用します。
convert <icon.png> -resize 64x64
inkscape の代わりに独自のimagemagicksを使用できます
-dither None
デフォルトの256色への変換によりアイコンにノイズが追加されたため、convertコマンドに追加しました
ImageMagickのより良いコマンド:
convert in.jpg -define icon:auto-resize=16,48,256 -compress zip out.ico
identify out.ico
これはGIMPで無料で行えます。これを行うための簡単な指示がここにあります。
引用するには:
- Gimpで画像を開きます
- キャンバスを正方形にする
- レイヤーのサイズを画像に合わせて変更します
- 64ピクセルなど、.icoファイルの最大サイズにレイヤーをスケーリングします
- レイヤーを複製する
- 複製レイヤーを次のサイズに拡大縮小する
- .icoファイルで必要なすべてのサイズの複製/スケーリングを続ける
- .icoとして保存
あなたの場合、最大の画像から始めて、複製された画像ごとに縮小するか、新しいレイヤーを追加して、必要な特定のアイコン画像をそのレイヤーにインポートすることができます。
ここだ受け入れ答えによってロブ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」に変更すると、convert
このスクリプトはG-Man の回答で説明されているテクニックを使用して、ファイル名の配列。最後に、ファイル名の配列を再度使用して、4行目で作成されたPNGファイルのリンクを解除(削除)します。
私はコマンドに気づきました:
convert logo.svg -define icon:auto-resize=16,48,256 -compress zip favicon.ico
(user400747の回答に示されているものと同等)実際にスケーリングされたビットマップ画像(品質が失われた)とレイヤーの背景が透明度を失った。
複数のサイズの.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つのアイコンのみをサポートするため、サードパーティのアイコン編集プログラムを使用する必要があります。あるカップルのここでスレッドアイコンエディタの勧告に、いくつかの無料、いくつかのコマーシャルが。
アイコンエディタに慣れると、アイコン形式の追加方法は異なりますが、一般的には同じです(ボタンをクリックするか、メニュー項目を選択して新しい形式を追加します)。ほとんどのプログラムでは、アイコンのフォーマット/サイズを追加するときにアイコンファイルをインポートできますが、ほとんどのプログラムでは、サイズを変更して既存のフォーマット/サイズから新しいフォーマット/サイズを作成できます。
新しい形式/サイズを追加するときに既存の作成オプションを使用することを選択した場合は、サイズ変更アルゴリズムが機能するためのデータが最も多くなるため、すでに利用可能な最大のアイコン形式から作成するようにしてください。また、XP / Vistaアイコンを作成するときは、透明度のあるバージョンを使用するようにしてください。ほとんどのプログラムは、アルファチャネルを最初から作成するのに向いていないためです。
convert
を調べるたびに新しい方法を学んでいるように感じます。答えてくれてありがとう!