请教个imagelist 的问题!
怎么让ADD进来的图片跟imagelist设置的高宽一致
我想在网上下载几张图片显示在程序中,把JPG转换成BMP加入到IMAGELIST,然后再listview中显示
现在又个问题
1:这样不一定到第几张图片就会报错
for i:=0 to pic_url.count - 1 do
begin
IdHTTP1.Get(pic_url[i],IMS);
IMS.Position :=0;
jpeg:= TJPEGImage.Create;
try jpeg.LoadFromStream( ims );
bmp:= TBitmap.Create;
try bmp.Assign( jpeg );
bmp.SaveToFile(ExtractFilePath(ParamStr(0))+'img\'+inttostr(i)+'.bmp');
imagelist1.add(bmp,nil);
finally
bmp.free
end; finally
jpeg.free
end;
end;
如果用button1 下载,button2 转换就没有问题,是不是应该设置点延时还是怎么样,应该怎么修改?
2 .我现在IMAGELIST.ADD(BMP,NIL)显示出来的效果跟双击imagelist ,在options 中选中 crop的效果一样
我想要的效果是ADD进来之后 跟双击imagelist ,在options 中选中 stretch 的效果
[解决办法]
1,没见你如何建立和初始化流,用完也没处理的语句,会不会错误来自流?提示了什么?
2,再添一个跟imagelist 尺寸相同的TBitmap,将你的bmp按拉伸形式画到它的画布上,再将这新加的TBitmap用ADD方法加入到你的imagelist。
[解决办法]
SourBMP , DestBMP : TBitmap;
R : TRect;
....放大2倍
DestBMP.Height := SourBMP.Height*2;
DestBMP.Width := SourBMP.Width*2;
R := Rect(0,0,DestBMP.Width-1,DestBMP.Height-1);
DestBMP.Canvas.StretchDraw(R , SourBMP);
//保存
DestBMP.SaveToFile(...