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

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

2013-01-06 
GUID下载转换并显示各种格式图片,看看哪里错了procedure TForm1.Button1Click(Sender: TObject)varStream

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


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;

[解决办法]

// 引用 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;

热点排行