zoukankan      html  css  js  c++  java
  • 把png图片放入资源文件

    自定义一个资源文件,Easy.rc,内容如下:

    icon_app ICON app.ico
    png_icon RCDATA app.png
    png_icon1 png app.png

    第一行是光标,不知道为什么,光标的大小总是32 * 32,而我在标题栏上显示的话,需要的是 16 *16的,所以,只能加载图片。

    考虑到透明的问题,所以选择png格式的图片。

    第二行是以资源数据的方式声明一个png的图片。

    第三行是以自定义资源的方式声明一个png图片。

    下面是从资源文件中加载该图片并显示

    procedure TEasyForm.DrawIcon(bitmap: TBitmap);
    var
      png : TPngImage;
      rstream : TResourceStream;
      rect : TRect;
    begin
      png := TPngImage.Create;
      png.LoadFromResourceName(Hinstance, 'png_icon');
      //rstream := TResourceStream.Create(Hinstance, 'png_icon1', 'png') ;
      //png.LoadFromStream(rstream);
      rect := TRect.Create(0, 0, 16, 16);
      bitmap.Canvas.Draw(0, 0, png);
      png.Free;
    end;
    png.LoadFromResourceName(Hinstance, 'png_icon');
    这句是直接从资源文件加载png图片,注意,这个png图片必须要以 RCDATA 的方式声明。

    rstream := TResourceStream.Create(Hinstance, 'png_icon1', 'png') ;
    png.LoadFromStream(rstream);
    这是先从资源文件中加载为资源流,然后再从流中加载png图片,注意:如果是自定义的资源类型,则只能以这种方式加载资源。

    下面是在工程文件中包含资源文件的声明方法,有了这样的声明,就会对资源文件(*.rc)自动进行编译,不需要自己手动编译了。

    {$R *.res} 
    {$R 'easy.res' 'easy.rc'}

     
  • 相关阅读:
    noip2014提高组day2二题题解-rLq
    uva 1606 amphiphilic carbon molecules【把缩写写出来,有惊喜】(滑动窗口)——yhx
    NOIP2008提高组(前三题) -SilverN
    uva 11134 fabled rooks (贪心)——yhx
    NOIP2008提高组火柴棒等式(模拟)——yhx
    NOIP2008 普及组T2 排座椅 解题报告-S.B.S
    判断https
    redis 在centos下的安装部署
    phpstorm常用快捷键
    yii 打印sql
  • 原文地址:https://www.cnblogs.com/CipherLab/p/13195498.html
Copyright © 2011-2022 走看看