把png图片放入资源文件

Posted cipherlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把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‘}

 

以上是关于把png图片放入资源文件的主要内容,如果未能解决你的问题,请参考以下文章

windows环境实现批量加密文件,并创建加密文件同名(不带后缀)的文件夹,然后把加密文件和图片和文本放入这个文件夹。

photoshop中 怎么改变一张png图片的颜色

有一个文件夹有很多无图像的PNG图片,怎么批量删除啊

vue项目静态资源(图片,字体)引用路径正确姿势

如何把jquery的值放入img标签的src里面

请问C++有没有一种方法加载png图片,无论exe文件复制到哪都可以用