首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问个imagelist 的有关问题

2012-10-16 
请教个imagelist 的问题!怎么让ADD进来的图片跟imagelist设置的高宽一致我想在网上下载几张图片显示在程序

请教个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(...

热点排行