.ico ファイルを生成するための Python ライブラリはありますか?

StackOverflow https://stackoverflow.com/questions/45507

  •  09-06-2019
  •  | 
  •  

質問

作成しようとしています favicon.ico Python からプログラムでファイルを読み込みますが、PIL は読み取りのみをサポートしています。 ico ファイル。

役に立ちましたか?

解決

によると ウィキペディア 最近のブラウザは PNG 形式のファビコンを処理できるので、それを生成するだけでよいでしょうか?

あるいは、 ICO記事 形式について説明します...

他のヒント

使用できます :

from PIL import Image
filename = r'logo.png'
img = Image.open(filename)
img.save('logo.ico')

オプションで、希望するアイコンのサイズを指定できます。

icon_sizes = [(16,16), (32, 32), (48, 48), (64,64)]
img.save('logo.ico', sizes=icon_sizes)

枕のドキュメント デフォルトでサイズを生成すると言う[(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)] 元のサイズまたは 255 より大きいサイズは無視されます。

はい、その中にあります 読み取り専用 ドキュメントのセクションに記載されていますが、ある程度は機能します。

おそらく次のようにすればうまくいくでしょう:

  • PIL を使用してアイコン画像を生成する
  • ImageMagick への Python インターフェイスを使用して画像を .ico 形式に変換します。 PythonMagick

私はこのアプローチを試したことはありません。ImageMagick 変換コマンド ライン プログラムは .png ファイルを .ico 形式に変換できたので、少なくとも ImageMagick は .ico 形式をサポートしています。

これがすべての場合に当てはまるかどうかはわかりませんが、WinXP では、.ico はサイズ 16x16、32x32、または 64x64 の bmp にすることができます。拡張子を bmp から ico に変更するだけで準備完了です。

あなたが持っている場合 イメージイオ, 、(おそらく Python で画像を読み書きするための最適なライブラリ)、次のように使用できます。

import imageio

img = imageio.imread('logo.png')
imageio.imwrite('logo.ico', img)

インストールはとても簡単です

pip install imageio
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top