Delphi の ImageCollection へ Unicode絵文字をカラーで追加
Delphi の VirtualImageList(TVirtualImageList) を利用して、絵文字をアイコンとして、ImageCollection(TImageCollection) へ Unicode絵文字をカラーで動的に追加したい 通常の Canvas で TextOut するとモノクロになるので、Direct2D を使うんだとか また、生成する画像サイズに収まるようにするため、フォントサイズを変化させながら収まるサイズを探しています で、出来た関数 ※投入後、VirtualImageList.AutoFill := False → True で反映されます VirtualImageList が高DPIへサイズ調整するので、利用サイズより大きめで作成しておきましょう uses Vcl.Graphics, Vcl.BaseImageCollection, Vcl.ImageCollection, System.ImageList, Vcl.ImgList, Vcl.VirtualImageList, Vcl.ComCtrls, Vcl.Direct2D, Winapi.D2D1 function AddImageCollectionItemFromEmoji(AImageCollection: TImageCollection; AEmoji: string; AWidth: Integer = 32; AHeight: Integer = 32; AItemName: string = ''; AMaxFontSize: Integer = 32): Integer; var Bitmap: TBitmap; CollectionItem: TImageCollectionItem; SourceItem: TImageCollectionSourceItem; D2DCanvas: TDirect2DCanvas; Size: Integer; begin Bitmap := TBitmap.Create; try Bitmap.SetSize(AWidth, AHeight); Bitmap.PixelFormat := pf32bi...