请高手看下面的代码
function TForm1.GetURLFile(strURL:string;strFileName:string):boolean;  //保存图片
var
    ms:TMemoryStream;
begin
    ms:=TMemoryStream.Create;
    Result:=true;
    IdHTTP1.Disconnect;
    try
        IdHTTP1.Get(strURL,ms);
        ms.Position:=0;
        ms.SaveToFile(strFileName);
    except
        Result:=false;
    end;
    ms.Free;
end;procedure TForm1.bsSkinButton8Click(Sender: TObject);
begin
   GetURLFile('http://61.152.248.132/pass9/gd.php','1.bmp');
end;为什么下载后的bmp图片虽然可以用windows的画图打开,但是无法在delphi里面打开
说是“Bitmap is not valid”
上面代码出了什么问题?
到底怎么下载bmp图片?
不一定用idhttp各位帮帮我

解决方案 »

  1.   

    下载的函数好像没问题。
    估计是调用时格式不对,php变成bmp,虽然windows的画图能识别,但delphi就会出错
      

  2.   

    但是如果在网页中另存那'http://61.152.248.132/pass9/gd.php'为bmp文件,
    delphi又可以打开用函数下载的delphi打开不了难道是idhttp对于这种下载有问题?
      

  3.   

    procedure TForm1.bsSkinButton8Click(Sender: TObject);
    begin
       GetURLFile('http://61.152.248.132/pass9/1.bmp','1.bmp');
    end;strURL:string应当是文件在网页上显示的路径,你不妨试试!
      

  4.   

    to:wuabc0954(没有) 
    'http://61.152.248.132/pass9/gd.php'就是图片的链接
    这个我还是懂看的
      

  5.   

    http://61.152.248.132/pass9/gd.php 这个不是图片格式的,只是你将它改成了后缀为bmp而已。不用IdHTTP控件,用URLDownloadToFile这个API来下载也是一样。
    试一下这个连接,jpg在TImage中可以打开的。
    GetURLFile('http://www.chinatuku.com/dw/gou/1.jpg',dog.jpg');
    你需要做的是将图片从下载到php中提取出来,实现像网页中另存为bmp的功能。可惜我不会,也没找到资料,只有等待高手的出现 :)
      

  6.   

    是啊 “你需要做的是将图片从下载到php中提取出来,实现像网页中另存为bmp的功能。”
    这个我也很想知道
    蒋大侠给了我一些英文网页,但是我水平有限
      

  7.   

    bitmap 文件是包含文件头的(里面说明了文件大小和象素什么的)你可以尝试查看文件头是否正确
      

  8.   

    下载下来的文件是PNG文件,不是BMP文件
      

  9.   

    postren(小虫) 正解,楼主应该是做验证码图片实别吧我之前做过一个论坛灌水机,pw的,大概就是先保存为png,然后转成bmp,之后进行识别。
      

  10.   

    你试一下microdraw 图形转换大师
      

  11.   

    51one(今天你学习了吗?) 
    谢谢
    你是怎么转换png成bmp的啊
      

  12.   

    知道了
    用IMAGEEN转换
    谢谢