SVGICONIMAGELIST
SVGをレンダリングする3つのエンジン(Delphi Image32、Skia4Delphi、Direct2Dラッパー)とSVG画像の使用を簡素化する4つのコンポーネント(Resize、FixedColor、Grayscale ...)
実際の公式バージョン4.3.0(VCL+FMX)
| 成分 | 説明 |
|---|
 | TSVGICONIMAGECOLLECTIONは、DelphiのSVG画像のコレクションであり、SVGICONVIRTUALIMAGELISTS(VCLのみ)の画像の集中リストを提供します |
 | TSVGICONVIRTUALIMAGELISTは、SVGICONIMAGECOLLECTION(VCLのみ)にリンクされているDelphiの特別な「仮想」イメージャリストであり、SVGアイコンの使用を簡素化します(サイズ、不透明、グレースケールなど...) |
 | TSVGICONIMAGEは、Delphi(VCL+FMX)の拡張画像コンポーネントであり、SVG画像を直接表示するか、すべての機能を備えたSVGICONIMAGELISTに含まれています(ストレッチ、不透明度、グレースケールなど...) |
 | TSVGICONIMAGELISTは、埋め込まれたSVGイメージコレクションを備えたDelphi(VCL+FMX)の拡張イメージャーです。このコンポーネントを使用して、古いDelphiアプリのImageListの交換を簡素化し、アイコンの自動スケーリングを取得します! |
これで、ウェブから直接アイコンを検索してダウンロードできます!
バージョン4.3から、統合サービスがコンポーネントエディターで利用可能になり、iconify.designが提供するAPIを介してWebからSVGアイコンをダウンロードできます。
これで、コンポーネントエディターで「Webから追加」を選択できます。Webから検索およびダウンロードする新しいフォームがVCLプラットフォームとFMXプラットフォームの両方で使用できます。

Wikiページを読んで、WebからSVGアイコンを簡単にダウンロードする方法を理解し、SVGICONIMAGELISTまたはSVGICONIMAGECOLLECTIONに含める方法を理解してください。
重要な通知
バージョン4.0から、 TSVGICONVIRTUALIMAGELISTはTVIRTUALIMAGELIST (Delphi 10.3を使用して最新)から継承します。以前のDelphiバージョンでは、TSVGICONVIRTUALIMAGELISTがTSVGICONIMAGELISTBASEから継承します。
重要な違いは、TvirtualImagelistがコレクション内の画像のサブセットのみを使用して作成できることです。
標準的なTVIRTUALIMAGELISTには固定コラー、グレースケール、ApplyTorootonly、および不透明なプロパティがありませんが、これらのプロパティはTSVGICONIMAGECOLLECTIONに存在し、リンクされたTVIRTUALIMAGELISTに反映されますが、収集レベルでそれらのプロパティを変更すると、すべての仮想のリンクされた変化!
この理由により、現在はTSVGICONVIRTUALIMAGELISTが固定型、グレースケール、ApplyTorootonly、およびOpacityプロパティも備えているため、VirtualImageListレベルでのみそれらのプロパティをセットアップできます。
このため、Delphi 10.3のコンポーネントを使用している場合、推奨される組み合わせはTSVGICONIMAGECOLLECTION + TSVGICONVIRTUALIMAGELISTである必要があります。
また、多くのリンクされたアクションを備えた大きな画像回収がある場合、PreserveItemsの重要性を忘れないでください。このプロパティを「真」に設定することなく、コレクション内のアイコンを追加または削除するたびに、すべてのアクションのImageIndexを確認して変更する必要があります。
Delphi 10.4バージョンから入手可能なもう1つの機能は、 TSVGICONIMAGECOLLECTIONがTCustomImageCollectionから継承することです。そのため、ここで説明するように...
お好みのSVGエンジンを選択してください!
3つの実装があります。
ネイティブDelphi Image32 (デフォルト)、Angus JohnsonによるImage32ライブラリを使用しています
Skia4delphiライブラリを使用して、GoogleのSkiaグラフィックスライブラリに基づいたクロスプラットフォーム2DグラフィックスAPIを使用しています
ネイティブWindows Direct2D実装のラッパー
詳細については、こちらをご覧ください。
パフォーマンスの比較
この表は、128x128ピクセルでレンダリングされた異なるセットのかなりの量のアイコンを使用して、SVGEXPlorerでテストされた3つのレンダリングエンジンのパフォーマンスを示しています。
| カウント | アイコンセット | Image32 | D2d | Skia4delphi |
|---|
| 997 | font-awesome | 1265ms | 1453ms | 1172ms |
| 654 | パピルス | 2750ms (1) | 937ms | 1266ms (1) |
| 5366 | マテリアルデザイン | 11015ms | 12001ms | 10688ms |
ご覧のとおり、3つのエンジンはアイコンとその複雑さに応じて異なって機能します。
(1) Image32とSkia4delphiがぼかし効果をレンダリングできる唯一のエンジンであることに注意してください(これは常に計算が遅い):これが、ぼかし効果を含むパピルスアイコンをレンダリングする「遅い」パフォーマンスの理由です。
Delphi XE3からDelphi 12(VCLおよびFMXプラットフォーム)から入手可能

関連リンク:embarcadero.com -LearnDelphi.org
VCLバージョンのサンプル画像

FMX(Windows)バージョンのサンプル画像

VCL SVGText-Propertyエディター(VCLおよびFMX)のサンプル画像


ユーティリティ
SVG Viewerデモは、利用可能なエンジンのレンダリング品質を確認するのに役立ちます。
SVGアイコンエクスプローラーユーティリティは、SVG画像コレクションを探索してプレビューするのに役立ちます。
アイコンをWindows Explorerに直接表示する場合、または強力なSVGテキストエディターを使用して編集する場合は、SVGシェルエクステンションを使用できます。
ドキュメント
Wikiセクションのガイドに従って、これらのコンポーネントを使用してDelphi VCLまたはFMX Windowsアプリケーションを近代化する方法を既知の方法で、コードをごくわずかに備えた材料、色、美しいものを近代化します。
他の同様のライブラリ
アイコンフォントのためにEtheaが作成した同様のプロジェクト:https://github.com/etheadev/iconfontsimageList
ノートをリリースします
2024年11月26日:バージョン4.3.0(VCL+FMX)
- Image32 4.6が2024年11月26日にリリースされ、SVG内の問題の描画テキストを修正するために更新
- すべての使用に追加された名前空間
- SVGICONIMAGELISTESTCLIENTパッケージを追加しました
- Web(VCLおよびFMX)からアイコンを選択するためのコンポーネントエディターの新しいオプション
- デモが更新されました
2024年10月17日:バージョン4.2.1(VCL+FMX)
- Image32 4.6に更新された2024年10月16日にリリースされて、描画の問題を修正する
2024年10月12日:バージョン4.2.0(VCL+FMX)
- Image32 4.6に更新された2024年10月12日リリースされて、描画の問題を修正する
- コンポーネント情報をAboutとSplash画面に追加しました
2024年9月14日:バージョン4.1.9(VCL+FMX)
- 2024年9月14日のImage32 4.5バージョンに整列しています
- いくつかのアイコン(Image32エンジン)のレンダリングを修正した範囲エラー
- Firemonkey ImageList Editorの名前の名前を修正しました
- AggiorNamentoパッケージDelphi 12.2
2024年8月27日:バージョン4.1.8(VCL+FMX)
- 2024年8月18日のImage32 4.5バージョンに整列しています
- Skia4delphiおよびD2Dエンジンの不透明度を備えたレンダリングを修正しました
2024年8月13日:バージョン4.1.7(VCL+FMX)
- Skia4delphiでの編集用の更新されたパッケージ(svgiconimagelist.incによって定義)
- Skiaユニットの使用を固定しました
- 2024年8月11日のImage32 4.5バージョンに合わせて
2024年7月18日:バージョン4.1.6(VCL+FMX)
- 2024年7月17日のImage32 4.5バージョンに整列しています
- Androidのアイコンの色を固定しました
- Defineを追加して、古いOpenPictureダイアログをコンポーネントエディターに使用します。
2024年5月22日:バージョン4.1.5(VCL+FMX)
- tsvgiconimageListbase.Assignを修正しました
- FMXプロジェクトのTSVGICONIMAGECOLLECTION登録を修正しました
- 2024年5月14日のImage32バージョンに整合しています
2024年5月5日:バージョン4.1.4(VCL+FMX)
2024年4月19日:バージョン4.1.3(VCL+FMX)
- 最新のimage32に合わせて
- MacOSXとの編集を修正しました
- Delphi 12.1のサポートを追加しました
2024年1月8日:バージョン4.1.2(VCL+FMX)
- 最新のimage32に合わせて
- svgを「pngにエクスポート」ダイアログにクリップボードに追加しました
- 著作権を更新しました
2023年11月9日:バージョン4.1.1(VCL+FMX)
- Skia4delphi 6.0.0に整列しています
- すべてのプラットフォームにFMXコンポーネントを追加しました
- Delphi 12のデモを修正しました
- SVGDisableEngineHintオプションを追加しました
03 2023年9月:バージョン4.1.0(VCL+FMX)
- Aligned Image32ライブラリは03/09/2023にリリースされました
- デモを修正しました(削除された「時代遅れ」SVGColorの使用)
- Delphi 12.1のサポートを追加しました
2023年8月24日:バージョン4.0.0(VCL+FMX)
- 古い「ネイティブ」エンジンTSVGを削除しました
- Skia4delphi verに更新されました。 6.0.0
- TSVGICONVIRTUALIMAGELISTは、TvirtualImagelist(D10.3から実際のバージョンに)から継承します。
- 同じ形で複数のTSVGICONVIRTUALIMAGELISTをテストするために、SVGICONVIRTUALIMAGELISTDEMOを追加しました
- Delphi 12のサポートを追加しました
2023年2月28日:バージョン3.9.6(VCL+FMX)
- Image32 verに更新されました。 4.4(2023年1月30日)
- Skia4delphi verに更新されました。 4.1.1(2023年2月26日)
2023年1月13日:バージョン3.9.5(VCL+FMX)
- 著作権2023を更新しました
- Image32 verに更新されました。 4.3(2022年9月27日)
- Skia4delphi verに更新されました。 4.0.2
2022年10月23日:バージョン3.9.4(VCL+FMX)
- FMXコンポーネントエディター:固定色の選択を変更しました
- Image32 verに更新されました。 4.3(2022年9月27日)
2022年9月15日:バージョン3.9.3(VCL+FMX)
- デモからW11スタイルを削除しました(get-itによってのみDelphiで利用可能)
- D11パッケージをDelphi 11.2に更新しました
2022年8月28日:バージョン3.9.2(VCL+FMX)
- 修正#240 tsvggraphic.assign
- Image32 verに更新されました。 4.2(2022年7月28日)
- Skia4delphi 3.4.1ライブラリに更新されました
- 修正#241ソースおよび宛先アイテム(FMX)からのアラインメント
2022年6月21日:バージョン3.9.1(VCL+FMX)
- 他のDelphiバージョン(VCL)のサポートを追加:D10シアトル
2022年5月8日:バージョン3.8.3(VCL+FMX)
- Skia4delphi 3.4.0ライブラリに更新されました
- svgexplorerの例は、「デモ」フォルダーの下に移動しました
2022年4月10日:バージョン3.8.2(VCL+FMX)
- Skia4delphi 3.3.1 llibraryに更新されました
- Image32 4.11ライブラリに更新されました
2022年3月29日:バージョン3.8.1(VCL+FMX)
- Skiaエンジンのアスペクト比を固定しました
- svgviewerを更新しました
- デモを更新しました
- 最新のSkia4delphiバージョンへのアラインメント
2022年3月17日:バージョン3.8.0(VCL+FMX)
- Delphi 11.1のサポート
- Delphi 10.4および11 to(auto)のための更新されたライブラリサフィックス
2022年3月9日:バージョン3.7.0(VCL+FMX)
- Skia4delphi 3.2.0のサポートが完了しました
- カイロエンジンのサポートを削除しました
- Image32でレンダリングを修正しました
2022年2月28日:バージョン3.6.0(VCL + FMX)
- FMXプラットフォームでもSkia4delphiのサポート
2022年2月26日:バージョン3.5.2(VCL+FMX)
- FMX-Image32でレンダリングを修正しました
2022年2月23日:バージョン3.5.1(VCL+FMX)
- Image32ライブラリを4.1.0バージョンに更新しました
- Skia4delphi 3.1.0のサポートを更新しました
2022年2月19日:バージョン3.5.0(VCL+FMX)
- Image32ライブラリを4.0.2バージョンに更新しました
- Skia4delphi 3.0.3のサポートを更新しました
- SVGTextエディターを修正しました
- Skia4delphi svgレンダリングを修正しました
2022年2月14日:バージョン3.4.0(VCL+FMX)
- Image32ライブラリを4.0.1バージョンに更新しました
- Skia4delphi 3.0へのサポートを追加しました
- いくつかの画像32描画の問題を修正しました
2022年1月13日:バージョン3.3.0(VCL+FMX)
- Image32ライブラリを4.0.0バージョンに更新しました
- 一連のトランプSVGの例を追加しました
- 「トランプ」の描画の問題を修正したimage32
2021年11月24日:バージョン3.2.0(VCL+FMX)
- コンポーネントエディターは、IDEテーマ(明るい、暗い...)とスタイルを使用します
- モバイルプラットフォームを操作するときに、利用可能なコンポーネントをパレットに修正しました
05 2021年11月:バージョン3.1.1(VCL+FMX)
- FMXの描画問題を修正しました
- コンポーネントエディターに複数のPNGファイルにエクスポートを追加しました
2021年10月31日:バージョン3.1.0(VCL+FMX)
- Image32ライブラリを3.4.1バージョンに更新しました
- Skia4delphiエンジンを追加しました(完全ではありません)
2021年8月28日:バージョン3.0.0(VCL+FMX)
- Delphi 11の更新されたパッケージ
- いくつかのドキュメント(画像とwiki)を更新しました
2021年8月24日:バージョン2.5.0(VCL+FMX)
- Image32ライブラリver.3.1に整列しています
2021年7月22日:バージョン2.4.0(VCL+FMX)
- Image32 ver.3ライブラリに更新および整合しています
- Delphi 11 Alexandriaのパッケージを追加しました
2021年7月18日:バージョン2.3.1(VCL+FMX)
- 8桁で定義された色のレンダリングファイルを修正しました
2021年7月17日:バージョン2.3.0(VCL+FMX)
- 新しいエンジンを追加:Angus JohnsonによるImage32ライブラリ(VCL+FMX)
- Image32は、デフォルトのネイティブDelphiエンジンになりました
- AndroidプラットフォームとiOSプラットフォームのサポートを追加しました(Image32エンジンによる)
- 後方Delphiバージョンのサポートを追加しました(XE3から)
- デモを追加して、4つのエンジン(svgviewer)を比較します
- カイロエンジンのSVGICONIMAGEで「中央」のレンダリングを修正しました。
- 警告:TSVGICONIMAGEコンポーネントの祖先をtcustomControlからtgraphicControlに変更しました
2021年4月18日:バージョン2.2.6(VCL+FMX)
- 新しいapplyfixedcolortorootonlyプロパティを追加しました
- 新しいTControllistコンポーネントのデモを追加しました(D10.4.2のみ)
2021年2月22日:バージョン2.2.5(VCL+FMX)
- PNGオプションへのエクスポートをコンポーネントエディターに追加しました
2021年1月23日:バージョン2.2.4(VCL+FMX)
- svgiconimageの#156ストレッチを修正しました
- 修正#157 SVGICONIMAGEは、VirtualImageListから正しい画像を取得します
2021年1月17日:バージョン2.2.3(VCL+FMX)
- 修正#151アンチアライアスの問題
- 編集者に異なる幅と高さの設定を固定しました
- エディターに異なる高さと幅のアイコンのプレビューを修正しました
2020年12月24日:バージョン2.2.2(VCL+FMX)
- FMXコンポーネントに幅、高さ、ズームプロパティが追加されました
- 再設計されたFMXコンポーネントエディター
- VCLコンポーネントエディターを修正しました
2020年12月8日:バージョン2.2.1(VCL+FMX)
- パッケージに64ビットプラットフォームを追加しました
- マイナーな修正(ブロックを除く空)
- tsvgiconimage継承色を修正しました
- FMXバージョンの修正を修正しました
2020年9月23日:バージョン2.2.0(VCL+FMX)
- 「カイロ」SVGエンジンを追加しました
- 完璧なアンチアリアス効果にアンチアリアスコロールを追加しました
- SVGICONIMAGEのImageIndexプロパティエディターを追加しました
- TSVGICONIMAGEコンポーネントにFixedColorとグレースケールを追加しました
2020年9月16日:バージョン2.1.1(VCL)2.1.0(FMX)
- 修正された問題(#110、#111、#113)
- 編集者でSVGテキストの編集は、コンテンツを失うことなくエラーを表示します
04 2020年9月:バージョン2.1.0(VCL)1.5.1(FMX)
- SVGファイルをロードするときにアイコンのプレビューを追加しました
- 多くの問題を修正しました(#81、#86、#87、#88、#91、#94、#103 ...)
- パフォーマンスを増やすためにXMLを解析するリファクタリング(Xmlliteを使用)
2020年8月26日:バージョン2.0(VCL)1.5.0(FMX)
- エンジンを選択するための工場を追加しました
- 代替のサードパーティSVGエンジンを使用するインターフェイスを追加しました
- アイコンのカテゴリをサポートするために、再設計されたコンポーネントエディター
- ネイティブVirtualimagelistの新しいサポート(D10.3から)
- デフォルトでdfmにstoreastextアイコン(および一意のモード)
- 多くの問題(#35から#72)を修正しました。TSVGICONVIRTUALIMAGELIST.COLLECTIONの処理SVGICONVIRTUALIMAGELIST.IMAGECOLLECTIONに変更されました。
2020年8月17日:バージョン1.9(VCL+FMX)
- FixedColorはTSVGColorからTColorに変更されました
- fixed fixedcolorをコンポーネントエディターのアイコンに割り当てました
- Tcolorboxを使用するようにコンポーネントエディターを更新しました
2020年8月13日:バージョン1.8(VCL+FMX)
- 高DPIの完全なサポートのための完全なリファクタリング
- 新しいSVGICONIMAGECOLLECTIONコンポーネント
- 新しいSVGICONVIRTUALIMAGELISTコンポーネント
- SVGICONIMAGELISTコンポーネントとコンポーネントエディターの再設計
- デモが更新され、異なるDPIでマルチモニターをテストしました
- 号#20を修正しました20:ダブルの調整(絵画方法)
- 問題#25を修正:変換マトリックスは誤って解析されます
- 問題#26を修正しました:Calcmartrixのエラー
- 問題#27:tsvgradialgradient.readinがグラデーショントランスフォームマトリックスを読み取らない
- 問題#28を修正しました:tsvgradialgradientで色を逆にする必要があります
- 問題#29を修正しました:スケーリングはビューボックスの幅/高さに基づいている必要があります
- 問題#31を修正:空のSVGプロパティは例外を引き起こします
- 問題#33を修正しました:「Fill-rule 'プレゼンテーション属性は処理されません
- 問題#34を修正:例外テキスト要素は例外を引き起こします
2020年8月5日:バージョン1.7(VCL+FMX)
- dpichangedメソッドを追加しました
- 強化されたsvgexplorer
- 問題#20を修正しました:ダブルをシングルに置き換えました
- 問題#19および18を修正しました#:ロード/savetostream非効率的でエンコードの矛盾
- 問題#17:PTからPXへの誤った変換
- 問題#14:スケーリングの問題を修正しました
- 問題#11:ティマゲリストのドラッグドロップと互換性がないことを修正しました
- 問題#6を修正しました:いくつかのSVG画像のレンダリングが正しくありません
2020年7月15日:バージョン1.6(VCL+FMX)
- Tbuttonでのレンダリングを修正しました! (VCL)
- イメージエディター(VCL)に「適用」を修正しました
- ImageEditor(VCL)に再フォーマットXMLを追加しました
- アイコンをディスク/フォルダーに探索するためのユーティリティを追加しました(svgexplorer)
- 固定継承色の描画(SVG)
- バイナリモード(VCL)でプロパティをDFMに保存することを修正しました
- 一部のプロパティの保存を修正しました(デフォルト値を保存しないでください)
2020年6月13日:バージョン1.5(VCL+FMX)
- VirtualImagelistのように、DisabledGrayscaleおよびDisabledOpacityのサポートを追加しました
- vclstylesがアクティブになった描画障害アイコンを修正しました
2020年6月9日:バージョン1.4(VCL+FMX)
- すべてのアイコンのImageListにGrayscaleとFixedColorを追加しました
- 単一のアイコンにグレースケールと固定コラーを追加しました
- 複雑なSVGデモ画像を追加しました
- デモを更新しました
2020年6月6日:バージョン1.3(VCL+FMX)
- TSVGICONIMAGE.SVGTEXTおよびTSVGICONITEM.SVGTEXTのプロパティエディターを追加しました
- 変換属性に関するいくつかの描画問題を修正しました
- モニターDPIが変更されたときに、再スケーリングアイコンを修正しました
2020年5月28日:バージョン1.2(VCL+FMX)
- Delphi 10.4の完全なサポート
- 他のDelphiバージョン(VCL)のサポートを追加:DXE6、DXE8、D10.1
- コンポーネントエディターの位置メモリを追加しました
- 問題を修正しました:ICONエディターは追加されたアイコンを保持していません
- 修正された問題:指数表記を備えたSVGは正しく解析されず、画像表示に影響します
2020年5月25日:バージョン1.1(VCL+FMX)
- 高度なコンポーネントエディターを使用してコンポーネントTSVGICONIMAGELISTFMXを追加しました。
- コンポーネントTSVGICONIMAGEFMXを追加して、SVGをタイムに表示しました。
- それらがどのように機能するかを示すデモ。
- 何百ものアイコンを構築するための非常に高いパフォーマンス。
2020年5月24日:ファーストバージョン1.0(VCL)
- 高度なコンポーネントエディターを使用してコンポーネントTSVGICONIMAGELISTを追加しました。
- コンポーネントTSVGICONIMAGEを追加して、SVGをタイムに表示しました。
- それらがどのように機能するかを示すデモ。
- 何百ものアイコンを構築するための非常に高いパフォーマンス。
- Delphi 10.2から10.4シドニーからのサポート(他のDelphiバージョンが間もなく登場)
に感謝します
これらのコンポーネントは、以下のライブラリを使用します。
Angus JohnsonによるImage32ライブラリ
これらのファイルはImage32/sourceおよびimage32/source/image32_svgフォルダーに含まれています
著作権ブーストソフトウェアライセンスバージョン1
AutohorsによるSkia4delphiライブラリ
これらのファイルは、Skia4delphi/sourceフォルダーに含まれています
著作権mit-license
ヴィンセント・パレットとキリアコス・ヴラホスに大いに感謝してくれたことに感謝します。