在Delphi中将拉伸图像添加到ImageList
我有一个表,其中包含图片字段中的图像,我将把它们放入 ImageList 中。 这是代码:
ImageList.Clear;
ItemsDts.First;
ImageBitmap:= TBitmap.Create;
try
while not ItemsDts.Eof do
begin
if not ItemsDtsPicture.IsNull then
begin
ItemsDtsPicture.SaveToFile(TempFileBitmap);
ImageBitmap.LoadFromFile(TempFileBitmap);
ImageList.Add(ImageBitmap, nil);
end;
ItemsDts.Next;
end;
finally
ImageBitmap.Free;
end;
但是对于尺寸与 ImageList 尺寸不同的图像,我遇到了一些问题。
更新: 我的问题是,当添加大于 ImageList 大小(32 * 32)的图像时,例如 100 * 150 它不会正确显示在连接到 ImageList 的组件中(例如在 ListView 中)。 看来新添加的图像没有被拉伸,而是被裁剪了。我希望像在 ImageList Editor 中一样拉伸新图像。
I have a table contains Image in a Picture field and I am going to put them into an ImageList.
Here is the code:
ImageList.Clear;
ItemsDts.First;
ImageBitmap:= TBitmap.Create;
try
while not ItemsDts.Eof do
begin
if not ItemsDtsPicture.IsNull then
begin
ItemsDtsPicture.SaveToFile(TempFileBitmap);
ImageBitmap.LoadFromFile(TempFileBitmap);
ImageList.Add(ImageBitmap, nil);
end;
ItemsDts.Next;
end;
finally
ImageBitmap.Free;
end;
But I have some problem for images with difference size from ImageList size.
Update:
My problem is that when adding Image larger than ImageList size (32 * 32), for example 100 * 150 It does not appear correctly in a component connected to ImageList (for example in a ListView).
It seems newly added image is not stretched but is Croped. I want new image to be stretched as in ImageList Editor.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不知道ImageList是否提供了自动拉伸图像的属性。除非有人找到一些内置的,否则您始终可以在将图像添加到 ImageList 之前自行拉伸图像。当您这样做时,请停止使用磁盘上的文件:改用
TMemoryStream
。像这样的:PS:我在浏览器窗口中编辑了您的代码。我不能保证它能编译,但如果不能编译,应该很容易修复。
I don't know if ImageList provides a property to automatically stretch the image. Unless someone finds some built-in, you can always stretch the image yourself before adding it to the ImageList. And while you're at it, stop using the file-on-disk: use a
TMemoryStream
instead. Something like this:PS: I edited your code in the browser's window. I can't guarantee it compiles, but if it doesn't, it should be easy to fix.