我在 TImageCollection 中加載了幾個影像。我想訪問里面的圖片以復制到 fastreport 等。我試過這樣的事情:
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;
我該怎么做?謝謝。
uj5u.com熱心網友回復:
的主要目的TImageCollection是提供不同尺寸的影像。為此,它提供了檢索特定尺寸影像的方法。最簡單的是GetBitmap,它采用影像的索引和請求的大小。
var
bmp: TBitmap;
begin
bmp := imagecollection.GetBitmap(1, 48, 48); // get 48 pixel
try
MyPicture.Picture.Assign(bmp);
finally
bmp.Free;
end;
end;
uj5u.com熱心網友回復:
首先,考慮Uwe Raabe 的回答并理解TImageCollection. 也許您只需要一個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);
通常,您不應該使用這種方法,除非在一些非常特殊的情況下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/465480.html
標籤:德尔福
上一篇:如何使用POS搜索不同出現的字串
