gpt4 book ai didi

image - 在 Delphi 中将透明和拉伸(stretch)图像添加到图像列表

转载 作者:行者123 更新时间:2023-12-05 08:44:34 30 4
gpt4 key购买 nike

根据我之前在 Cosmin Prund 的帮助下提出的问题,我找到了如何拉伸(stretch)图像并添加到 ImageList:

procedure LoadDatasetImagesToImageList;
var
StretchedBMP: TBitmap;
MS: TMemoryStream;
begin
ImageList.Clear;
ItemsDts.First;
StretchedBMP := TBitmap.Create;
try

// Prepare the stretched bmp's size
StretchedBMP.Width := ImageList.Width;
StretchedBMP.Height := ImageList.Height;

// Prepare the memory stream
MS := TMemoryStream.Create;
try
ImageBitmap:= TBitmap.Create;
try
while not ItemsDts.Eof do
begin
if not ItemsDtsPicture.IsNull then
begin
MS.Size := 0;
ItemsDtsPicture.SaveToStream(MS);
MS.Position := 0;
ImageBitmap.LoadFromStream(MS);
// Stretch the image
StretchedBMP.Canvas.StretchDraw(Rect(0, 0, StretchedBmp.Width-1, StretchedBmp.Height-1), ImageBitmap);
ImageList.Add(StretchedBmp, nil);
end;
ItemsDts.Next;
end;
finally
ImageBitmap.Free;
end;
finally
MS.Free;
end;
finally
StretchedBMP.Free;
end;

现在的问题是插入的Image在ImageList中是不透明的。在 TListview 中显示项目时,图像不透明。但是当正常添加图像时(不拉伸(stretch)和使用 StretchedBMP 变量)图像是透明的。

PS:上一个问题的链接是:Add stretched image to ImageList in Delphi

最佳答案

您调用 ImageList.Add 并为蒙版图像传递 nil。您可以计算与拉伸(stretch)图像对应的掩码,也可以调用 ImageList.AddMasked而不是让图像列表根据您指定为“透明”颜色的颜色为您计算蒙版。这就是在设计时使用图像列表组件编辑器时发生的情况。

关于image - 在 Delphi 中将透明和拉伸(stretch)图像添加到图像列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688356/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com