ホームページ > 記事 > ウェブフロントエンド > ICO アイコン ファイルの読み取りと書き込みのための Photoshop プラグイン
これは私が Photoshop 用に書いたファイル形式プラグイン、IcoFormat で、Windows アイコン ファイル (拡張子 ICO、CUR) の読み書きに使用されます。アイコンファイル形式のPSプラグインは何年も前に外国人によって作成されましたが、現在私が提供しているプラグインの方が機能が優れており、外国人が提供するプラグインを置き換える十分な理由があります。
外人さんのプラグインの特徴はあまりはっきりとは覚えていないのですが、記憶を頼りに以下のように比較すると、
(1)外人さんのプラグインは、プラグイン選択時にICOファイルが表示できません。ファイルダイアログボックスで。 PiPL リソースの記述に問題があることが原因である可能性があります。私のプラグインにはこの問題はありません。
(2)Foreignerのプラグインは複数の画像を含むファイルを開いたときにプレビューできませんが、より使いやすいようにダイアログボックスにプレビュー画像を提供します。
(3)外人さんのプラグインはアイコンの透明部分(メモリ上)が上手く扱えませんが、私のプラグインでは透明部分を上手く設定できます。
(4) 外国人のプラグインは、XP システムのマルチイメージ アンチエイリアス アイコンを保存できませんが、私のプラグインはアンチエイリアス アイコンとして保存し、他の品質と標準サイズのイメージを自動的に生成できます (Iこれが最も重要なことだと思います(外国人のプラグインを置き換える理由)。
(5) 画像をダウングレードする際にオクツリーアルゴリズムが使用され、ダウングレードされた画像の品質は IconWorkshop などのソフトウェアで使用される方法よりも優れています。
(6) 私のプラグインはスクリプト対応であり (つまり、プラグインのパラメータは PS スクリプト システムに保存されます)、実行時にユーザーの設定を記憶できます。
(7) 私のプラグインはカーソル(CUR)ファイルを開いたり保存したりできますが、外国人のプラグインはできないようです。また、将来的には PE ファイルからアイコンをインポートするなど、他の機能も開発し続ける可能性があります。
以下は主にこのプラグインの簡単な説明と紹介です。このプラグインには、「バージョン情報」ダイアログ、「画像選択」ダイアログ(ファイルを開く時)、「透明部分設定」ダイアログ、「画像保存オプション設定」ダイアログの合計4つのダイアログがあります。以下に一つずつ示していきます。
(1) 画像選択ダイアログ
複数の画像を含むアイコンを開くと、画像選択ダイアログ ボックスが表示されます:
ここでは主に、ユーザーがファイルから開く画像を選択する必要があります。 「AND MASK または Alhpa を独立したチャンネルとして追加」とは、32 BPP 未満のアイコンの場合、PS の新しいチャンネルに AND MASK (白黒のビットマップ、白は透明を意味します) が追加されることを意味します。32 BPP のアイコンの場合BPP では、アルファ チャネルが新しいチャネルとして PS に追加されます。 「チェッカーボードグリッドを表示するかどうか」は、ダイアログボックス上の画像プレビューに対して設定されており、チェックされている場合は実際に PS のコールバック関数が呼び出され、そうでない場合は WIN32 の GDI 関数を通じて描画されます。
(2)画質選択ダイアログボックス
ファイルを保存する際、画像モードに応じて異なるダイアログボックスが表示されます。現在の画像モードが RGB モードの場合、次のダイアログ ボックスがポップアップ表示され、どの品質のアイコンを保存するかを設定するように求められます。アンチエイリアス アイコンを選択すると、他のサイズと色の画像がファイルに自動的に追加されます (ファイルのサイズと標準の画像サイズに応じて、最終的なファイルには 3 ~ 12 個の画像が含まれる場合があります)。関係)、このプラグインによって生成されるアンチエイリアス アイコンは、XP システムで使用されるアイコンに関する MSDN の要件を完全に参照して生成されるため、このプラグインによって生成されるアンチエイリアス アイコンは、Windows アプリケーション プロジェクトに直接インポートできます。 VSのを使用します。アンチエイリアスアイコンについては、以前の記事を参照してください。
次のストレッチモードオプションは、32BPP アンチエイリアスアイコンに対してのみ有効です。これは、ここでは 32BPP のみが画像を縮小する必要があるためです。いわゆるピクセルの削除とは、ピクセルが重なったときに、画像上の特定のピクセルだけを取り出すことを意味します。線形補間とは、ソース イメージ上の 4 つのピクセル間で線形補間を行うことを指します。原理的には、画素削除は線形補間よりも演算量が少なく、スケーリング品質も線形補間の方が優れている可能性がありますが、実際にはあまり違いを感じにくいです。
16BPPを選択した場合、保存される画像はX-5-5-5分布の画像になります。 4 BPP または 8 BPP 画像を選択するときに使用される画像劣化アルゴリズムは、オクツリー アルゴリズム (以前の記事で紹介しました) です。色数が少ない場合、オクツリー アルゴリズムにより画像がすべて 1 色に変化する可能性があるため、モノクロ画像として保存するオプションは提供しませんでした (最小 BPP は 4)。下の図は、アイコンをダウングレードして保存した後の画質効果を示しています:
このプラグインを使用すると、PNG画像をアンチエイリアスアイコンに簡単に変換できます。方法は、PS で PNG 画像を開き、ICO ファイルとして保存します。
(3) AND MASK 設定ダイアログボックス
ファイルを保存する際、画像がインデックスモードの場合、ユーザーは透明部分(AND MASK 部分)を設定する必要があります。デフォルトのオプションでは、PS ドキュメント自体から透明度情報を直接使用しますが、このダイアログ ボックスでは、透明度情報を設定する他の方法を選択することもできます。
ここには多くの設定があり、ドロップダウンボックスを使用して切り替えることができ、以下にさまざまな入力インターフェイスが提供される場合があります。透明色を黒、白、前景色、背景、特定のサンプリング ポイントの色、指定した RGB カラー、またはアルファ チャネル (白は透明を意味します) に設定するか、カラー テーブルのインデックスを指定できます。
(4) Aboutダイアログボックス
PSメニューのHelp-About Plug-in-ICO... このダイアログボックスも私が丁寧にデザイン、作成したもので、とても美しいです。 。このダイアログ ボックスでマウスを移動すると、私のブログの URL がマウスに反映され、URL をクリックしてデフォルトのブラウザを呼び出して URL を開くことができます。これは、PS が提供する CallBack Suite を通じて実現されます。これは、PS フィルターの作成方法に関する前回のチュートリアルで紹介しました。
on on はその他のメモです: (5) その他のメモ:
画像のインデックス作成のための Octre アルゴリズムは、このプラグイン用のテクノロジーを準備することを目的としています。で。このプラグインの開発には、ICO ファイル形式や PS SDK などの学習を含め、多大な労力が必要です。参照資料 (オクツリー アルゴリズムなど) は以前のブログ投稿で紹介されているため、ここでは省略します。
5.1 X、Y解像度がファイルで指定されていない場合は、PSのデフォルト値であるPS: 72ピクセル/インチを維持します。
5.2 インデックス付き画像がオンになっている場合は、メニューの [画像-モード-カラー テーブル] で現在のカラー テーブルを確認できます。一部のソフトウェア (AcdSee など) はカラー テーブルを実際の色数の画像に正しく解析できないため、ファイルを保存すると、カラー テーブルは実際の色数ではなく、常に 16 または 256 に設定されます。
5.3 このプラグインは、次のユーザーに特に適しています:
PS スキルのあるユーザー、Windows アイコン デザイナー、プログラマー、エンジニア、その他の技術者にこのプラグインをインストールすることを強くお勧めします。 (私のような人のように)自分自身で UI デザインに参加すること。
このプラグインを使用すると、Photoshop の強力な画像処理機能を最大限に活用できるようになり、VC や VS.NET などの IDE の限られた編集機能に制限されなくなり、Photoshop を使用してもちろん、インターネット上の多くの PNG 素材をプログラムで使用するアイコンに簡単に変換することもできます。
より多くの方に気に入って使っていただけることを心より願っております。コメント、提案、ニーズがある場合は、私のブログにメッセージを残すか、私のメールボックスに電子メールを送ってください (メールボックスのアドレスは左側の掲示板にあります)。
by
「IcoFormat .8BI」ファイルをPhotoshopのファイルフォーマットプラグインディレクトリ①、例えばC:Program FilesAdobeに置きます。 Photoshop CS プラグイン ファイル形式の場合は、PS を再起動します。 PS メニューに「ヘルプ - プラグインについて - ICO...」というメニューがあるかどうかを確認します。これは、プラグインが正常にインストールされていることを意味します。 (8)更新記録(バグレベル:H:非常に重要、M:中、L:重要ではない): 8.1M:32BPP以下の品質で保存する際のANDMASK(アルファチャンネル内)設定のロジックを調整255 未満の値はすべて透明に設定され、強い影が表示されるのを防ぎます。 2010年12月17日。8.2 H: 32BPP アンチエイリアスアイコンを保存して線形補間を選択すると、アルファチャンネルも線形補間を使用してしまうバグを修正しました(正しい方法は、アルファチャンネルがピクセルを削除することによって生成されたままであることです)。このバグにより、他のサイズの画像を生成するときに、透明であるべきではないピクセルが誤って透明になってしまう可能性があります。このバグは 8.1 で導入されたことに言及する価値があります。 2010-12-18 2:04:15。
8.3 L: 以下のバグを修正し、アイコン内のインデックス画像を開き、「画像の透明効果をオンにする」オプションのチェックを外しても、結果が依然として透明になる場合があります。 2010-12-18 3:36:08。
8.4 H: フィルターが PS からドキュメントの透過情報を直接取得できるように、プラグインの PIPL リソースを調整しました (ユーザーが追加のチャネルを明示的に提供する必要がなくなりました)。線形補間コードの論理的に不正確な部分を調整し、ソース画像の透明部分(黒)にピクセルが結合しないようにしました。 2010-12-19 0:55:23。
8.5M: 32個のBPPアイコンを生成するロジックを調整し、PSドキュメント内のデータから画像を直接ダウングレードしました(元の方法ではインデックス画像を生成するときに色が失われることがありました、理由は不明です)。 2010-12-19 1:41:08。
8.6 L: アンチエイリアス処理されたアイコンを 32 BPP の単一画像として保存するオプションを追加しました。 2010-12-22 2:05:30。
8.7L:インデックス画像読み込み時の透明度の設定方法が従来の方法に変更されます。 16 色の画像の場合は、透明度がより正確に適用されます。256 色の画像の場合は、透明度が適用されない可能性があるため、画像内で使用されていない色を見つけてください。適用済み。この方法の主な欠点は、名前を付けて保存すると、16 色のインデックス付きイメージが 256 色のイメージにアップグレードされる可能性があることです。 2010-12-23 2:57:17。
8.8 L: 16枚のBPP画像のピクセル値を読み取るための線形マッピング方法を若干調整しました(影響はほとんどありません)。 2010年12月24日18:48。
(9) 謝辞:
公式フォーラムで私の質問に答えてくれた Chris Cox (Adobe 社員) に感謝します。
富/photoshop/
10.2 Photoshop SDK (6.0、CS)。
10.3 ICONPRO (MSDN 技術ドキュメントで提供されている例)。
(11) この記事で使用する用語の紹介
11.1 BPP (Bits Per Pixel)
それは画像のビット深度です。その意味は、各ピクセルに使用されるビット数を記述することです (1 バイトは 8 ビットを含みます)。たとえば、RGB トゥルー カラー ビットマップの場合、各ピクセルは 3 バイトで表され、その BPP = 24 です。白黒イメージ (バイナリ ビットマップ) のビット深度は 1 です。16 色のインデックス付きイメージのビット深度は 4 (各バイトが 2 ピクセルを表します)、256 色のインデックス付きイメージのビット深度は 4 です。ビット深度は 8 (各バイトは 1 ピクセルを表します)。通常、ビット深度を 8 で割った値がピクセルあたりのバイト数を表します。
私たちがよく言うグレースケール画像は、実際には独自のフォーマットではなく、特別な256色のインデックス画像であり、そのパレットの特徴は、各色のR、G、Bの3つの成分が均等に256であることです。パレットの色の範囲は (0, 0, 0) から (255, 255, 255) であるため、画像データの値は基本的にカラー インデックスですが、グレースケールの明るさとしても理解できます。
11.2 アンチエイリアス (AntiAlias)
これは私の個人的な翻訳であり、十分に正確ではない可能性がありますが、より多くの人の習慣に合わせてアンチエイリアスと呼ばれるかもしれません。これは、半透明のピクセルを使用してエイリアシングを除去する手法です。まず第一に、ギザギザ感の理由は、ディスプレイが画像を表示するために高密度マトリックス グリッドを使用しているためであることを理解する必要があります (基本的に、数学的なアナログ信号を変換することにより、コンピューター画像アルゴリズムに従ってドット マトリックス ピクセルが設定されます)。離散化されたデジタル信号)、このプレゼンテーション タイプの直線はギザギザで、少し階段のように見えます。隣接するピクセルの非滑らかな突然変異により、ギザギザの外観が作成されます。
直線をレンダリングするためのより複雑な手法では、部分的に透明なピクセルと不透明なピクセルを使用する必要があります。ピクセルは単色または背景色の混合に設定されます (線への近さに応じて)。このレンダリング方法はアンチエイリアスと呼ばれ、視覚的により滑らかで柔らかい直線を生成します。
この記事で言及されているアンチエイリアスアイコンは、32BPP画像を指します。つまり、各ピクセルはそれぞれ R、G、B、A (アルファ) を表す 4 バイトで表され、ピクセルの透明度を記述するために使用される通常の RGB ビットマップよりも 1 つ多いアルファ チャネルがあります。したがって、ピクセルの半透明度を指定して、背景とのソフトなブレンドを作成する、つまりアンチエイリアス効果を実現することができます。
① PS プラグイン ディレクトリは通常、$(PS INSTALL DIR) プラグインを参照します。サードパーティのプラグイン ファイル (.8B*) がこのディレクトリに配置されている限り、PS はスキャンして試行します。起動時にこのディレクトリの下にある 8B* ファイルをロードします。プラグインのタイプはサフィックス名によって決まりませんが、その PIPL 属性によって指定されます。このディレクトリには、プラグインの種類に応じて、対応するサブディレクトリを作成できます。たとえば、フィルター (Filter)、ファイル形式 (File Format) ですが、ファイルが PS のプラグイン ディレクトリに配置されている限り、PS はそれをロードしようとすることに注意してください。プラグイン ディレクトリは、レジストリ内の次の場所を検索して取得できます: HKEY_LOCAL_MACHINESOFTWAREAdobePhotoshop (バージョン番号、8.0 など) PluginPath
ただし、中国語版の PS CS の場合、この値は英語バージョンのパスのままです (中国語化されていません)。したがって、これはプラグイン用のよりシンプルで使いやすいインストール ツールを提供する上で小さな障害となります。英語版の場合、PS インストール ディレクトリの下の Plug-Ins サブディレクトリと考えることができます。