如何将GDI类的图片,显示到image里,如果改下面的代码?
procedure TtestForm.FormPaint(Sender: TObject);
var
  g: TGPGraphics;
  img: TGPImage;
begin
  g := TGPGraphics.Create(Self.Canvas.Handle);
  img := TGPImage.Create('C:\001.jpg');  img.RotateFlip(TRotateFlipType(ListBox1.ItemIndex));
  g.DrawImage(img, 4, 4, img.GetWidth, img.GetHeight);  img.Free;
  g.Free;
end;procedure TtestForm.ListBox1Click(Sender: TObject);
begin
    Repaint;end;

解决方案 »

  1.   

    使用GDI类的转化函数,转为BMP文件保存,然后使用Timage.loadfromfile
      

  2.   

    http://blog.csdn.net/maozefa/category/353838.aspx
      

  3.   

    不是没人知道,而是知道的人太多,关键是你只给了30分。有点少,不过你的问题也真是太简单了。
    把你的
    g := TGPGraphics.Create(Self.Canvas.Handle); 
    改为
    g := TGPGraphics.Create(image1.Canvas.Handle); 即可在image1中显示。下次提问多给点分,这样既能显示你对问题的重视,我们又有更多的回答动力。
      

  4.   

    楼上,不好意思,我刚结了其它贴把分加上了。。怎么加了image1还不能显示image1啊?是一片空白 ???

      

  5.   

    不可能的,下面的代码完全可以。你换张图片试试var 
      g: TGPGraphics; 
      img: TGPImage; 
    begin 
      g := TGPGraphics.Create(image1.Canvas.Handle); 
      img := TGPImage.Create('C:\001.jpg'); 
      g.DrawImage(img, 4, 4, img.GetWidth, img.GetHeight); 
      img.Free; 
      g.Free;
    end;
      

  6.   


    楼上,你好!
    以上的代码可以实现,但为何我要实现旋转后显示的功能不能实现?
    谢。procedure TtestForm.FormCreate(Sender: TObject);
    begin
      ListBox1.Align := alRight;
      with ListBox1.Items do
      begin
        Add('RotateNoneFlipNone');
        Add('Rotate90FlipNone');
        Add('Rotate180FlipNone');
        Add('Rotate270FlipNone');
        Add('RotateNoneFlipX');
        Add('Rotate90FlipX');
        Add('Rotate180FlipX');
        Add('Rotate270FlipX');
      end;
    end;procedure TtestForm.ImgPaint;
    var
      g: TGPGraphics;
      img: TGPImage;
      GID:TGUID;
    begin
      g := TGPGraphics.Create(image1.Canvas.Handle);
      img := TGPImage.Create('C:\001.jpg'); 
      img.RotateFlip(TRotateFlipType(ListBox1.ItemIndex));
      g.DrawImage(img,4,4,img.GetWidth,img.GetHeight);  
      
      img.Free;
      g.Free; 
    end;
    procedure TtestForm.ListBox1Click(Sender: TObject);
    begin
        ImgPaint;
        Image1.Repaint;
    end;