Unfortunately, the VCL TImageList provides only an outdated technology with static pixel images (bmp, ico, png), whereas the DevExpress TcxImageList can also store SVG images.
The only free alternative is SVGIconImageList (Open Source from Ethea).
On the other hand, TIEBitmap has only an AddToImageList method, but not an explicit GetFromImageList method!
After getting artefacts with the TIcon method in a specific corner case, I now use a TBitmap with AlphaFormat:
bmp := TBitmap.Create;
try
bmp.Width := W;
bmp.Height := H;
bmp.PixelFormat := Vcl.Graphics.pf32bit;
bmp.AlphaFormat := Vcl.Graphics.afDefined;
ImageList1.GetBitmap(0, bmp);
ImageEnView1.Assign(bmp);
ImageEnView1.Update;
finally
bmp.Free;
end;