如何在 Delphi 11 中访问 TImageCollection 中的图像图片
how to access image picture in a TImageCollection in Delphi 11
我已经在 TImageCollection 中加载了几张图片。我想访问里面的图片以复制到快速报告等。
我试过这样的事情:
var
vi_imagen :TImageCollectionSourceItem;
bmp: tbitmap;
MyPicture: TfrxPictureView;
begin
vi_imagen := imagecollection.images[1].sourceimages[0];
bmp.Assign(vi_imagen);
MyPicture.Picture.Assign(bmp);
end;
我该怎么做?
谢谢
TImageCollection
的主要目的是提供不同尺寸的图片。为此,它提供了检索特定大小图像的方法。最简单的就是GetBitmap
,取图片的Index和请求的大小。
var
bmp: TBitmap;
begin
bmp := imagecollection.GetBitmap(1, 48, 48); // get 48 pixel
try
MyPicture.Picture.Assign(bmp);
finally
bmp.Free;
end;
end;
首先,考虑 and understand the the purpose of TImageCollection
. Maybe you simply need a TImageList
组件。
ImageCollection.GetBitmap()
首先查找完全匹配的尺寸。如果未找到,它会通过选择最佳来源根据请求的大小创建缩放位图。
如果您仍然需要通过索引访问特定的源图像,可以这样做:
// Assign to a TPicture instance
Image.Picture.Assign(ImageCollection.Images[X].SourceImages[Y].Image);
// Or assign to a TBitmap instance
Bitmap.Assign(ImageCollection.Images[X].SourceImages[Y].Image);
通常情况下,您不应该使用这种方法,除非在某些非常特殊的情况下。
我已经在 TImageCollection 中加载了几张图片。我想访问里面的图片以复制到快速报告等。 我试过这样的事情:
var
vi_imagen :TImageCollectionSourceItem;
bmp: tbitmap;
MyPicture: TfrxPictureView;
begin
vi_imagen := imagecollection.images[1].sourceimages[0];
bmp.Assign(vi_imagen);
MyPicture.Picture.Assign(bmp);
end;
我该怎么做? 谢谢
TImageCollection
的主要目的是提供不同尺寸的图片。为此,它提供了检索特定大小图像的方法。最简单的就是GetBitmap
,取图片的Index和请求的大小。
var
bmp: TBitmap;
begin
bmp := imagecollection.GetBitmap(1, 48, 48); // get 48 pixel
try
MyPicture.Picture.Assign(bmp);
finally
bmp.Free;
end;
end;
首先,考虑 TImageCollection
. Maybe you simply need a TImageList
组件。
ImageCollection.GetBitmap()
首先查找完全匹配的尺寸。如果未找到,它会通过选择最佳来源根据请求的大小创建缩放位图。
如果您仍然需要通过索引访问特定的源图像,可以这样做:
// Assign to a TPicture instance
Image.Picture.Assign(ImageCollection.Images[X].SourceImages[Y].Image);
// Or assign to a TBitmap instance
Bitmap.Assign(ImageCollection.Images[X].SourceImages[Y].Image);
通常情况下,您不应该使用这种方法,除非在某些非常特殊的情况下。