读书人

GUID下载转换并显示各种格式图片看看

发布时间: 2012-02-06 15:52:44 作者: rapoo

GUID下载转换并显示各种格式图片,看看哪里错了

Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);var  Stream: IStream;  ImgGUID: TGUID;  img: TGPImage;  memoStream, OleStream: TStream;begin  //将图片下载保存为TmemoryStream  memoStream := TMemoryStream.Create;  try {这个是图片URL}    IdHTTP1.Get(Edit1.text, memoStream);    memoStream.Position := 0;   //将TmemoryStream转成IStream    Stream := TStreamAdapter.Create(memoStream);    img := TGPImage.Create(Stream);    Repaint;    GetEncoderClsid('image/jpeg', ImgGUID);    img.Save('H:\1.jpg', ImgGUID);//这里正常    img.Save(Stream, ImgGUID);    //将IStream转成OleStream    OleStream := TOleStream.Create(Stream);    Image1.Picture.Bitmap.LoadFromStream(OleStream);  except    memoStream.Free;  end;end;


[解决办法]
Delphi(Pascal) code
// 引用 jpeg 单元procedure TForm1.Button1Click(Sender: TObject);var  Stream: IStream;  ImgGUID: TGUID;  img: TGPImage;  jpg: TJpegimage;  memoStream, OleStream: TStream;  b: word;begin  //将图片下载保存为TmemoryStream  memoStream := TMemoryStream.Create;  try {这个是图片URL}    IdHTTP1.Get(Edit1.text, memoStream);{    memostream.Position:= 0;    memoStream.Read(b,2);    if b=$4d42 then showmessage('bmp');    if b=$d8ff then showmessage('jpg');    if b=$4947 then showmessage('gif');    if b=$5089 then showmessage('png');  }    memoStream.Position := 0;   //将TmemoryStream转成IStream    Stream := TStreamAdapter.Create(memoStream);    img := TGPImage.Create(Stream);    Repaint;    GetEncoderClsid('image/jpeg', ImgGUID);    img.Save('1.jpg', ImgGUID);    img.Save(Stream, ImgGUID);//    将IStream转成OleStream//    OleStream := TOleStream.Create(Stream);//    Image1.Picture.Bitmap.LoadFromStream(OleStream);    memostream.Position:= 0;    jpg:= TJpegimage.Create;    jpg.LoadFromStream(memoStream);    Image1.Picture.Assign(jpg);    jpg.Free;  except    memoStream.Free;  end;end; 

读书人网 >.NET

热点推荐