刚开始学习图像显示,开始是想第三方插件,后来看了论坛,觉得还是gdi+简单,
现在有个很简单的问题,就是怎么把gdi+打开的图像放到timage里面啊,网上
显示图像的例子都是直接显示在form上面的。
新手,请多多帮忙了。

解决方案 »

  1.   

    Image是无HWND的控件,有Canvas,Canvas.Handle是HDC;gdi+的绘图操作统一在Graphics上完成,Graphics有从HDC创建的重载,只要从image1.Canvas.Handle创建就可以了呗
      

  2.   


    var
      img:TGPBitmap;
    begin
      img:=TGPBitmap.Create('c:\a.png');
      img.GetHBITMAP(0,Image1.Picture.Bitmap.Handle);
      img.free;
    end;
    学GDI+可以看阿发伯的博客:blog.csdn.net/maozefa
      

  3.   

    对,学习GDI+看阿发伯的博客,里面有太多的技巧可以学习了。
      

  4.   

    是的,阿发伯的博客:blog.csdn.net/maozefa 包含了很多方面的技巧。入门的也可以看看万一的博客,里面有很多小例子。
    结贴了。分数就大家分一点了。
      

  5.   

    哦,还一个问题,顺便问下再结贴。
    阿发伯的
    Image1.Picture.Bitmap.Handle := bmp.GetHBITMAP(0);
    楼上xzhifei 的
    img.GetHBITMAP(0,Image1.Picture.Bitmap.Handle);我都没法编译通过,错位信息如下,我用的通用的Gdi+,不是阿发伯的,这个有关系吗?[Pascal Error] Unit1.pas(32): E2197 Constant object cannot be passed as var parameter
      

  6.   


    var
      img:TGPBitmap;
      h:HBITMAP;
    begin
      img:=TGPBitmap.Create('c:\a.png');
      img.GetHBITMAP(0,h);
      Image1.Picture.Bitmap.Handle:=h;
      img.free;
    end;