Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)

要求Delphi2007或者更高版本, 系统要求至少XP-SP2以上

实际上是利用了Windows的windowscodecs.dll这个文件的功能

在VCL里已经封装为TWICImage类

procedure ScalerImage(AImage: TWICImage; AWidth, AHeight: Word);
var
  nWIF: IWICImagingFactory;
  nWIS: IWICBitmapScaler;
begin
  nWIF := AImage.ImagingFactory;
  nWIF.CreateBitmapScaler(nWIS);
  nWIS.Initialize(AImage.Handle, AWidth, AHeight, WICBitmapInterpolationModeFant);
  AImage.Handle := IWICBitmap(nWIS);
  nWIS := nil;
  nWIF := nil;
end;

用这个类还可以做更多图像效果, 比如反转, 或者格式转化什么的

http://www.cnblogs.com/hs-kill/p/3460064.html

时间: 2024-08-26 14:26:20

Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)的相关文章

什么是透明通道,如何使用?

“透明通道”顾名思义就是AnyChat SDK为上层应用提供的一个传输数据的通道,由于AnyChat SDK并不关心所传输的内容,即所传输的数据相对于SDK来说是“透明”的,便称为“透明通道”. 上层应用可以利用SDK提供的透明通道来扩展业务,传输的内容没有限制,可以为任意数据类型缓冲区,单次传输大小限制为1000字节,如可以利用透明通道传输业务上自定义的指令,接收方收到数据后,会产生透明通道数据回调,在回调函数里面进行指令的解析,并进行对应的业务逻辑处理. V2.8.7之前的版本,只能在当前房

带alpha透明通道视频—网页播放带alpha通道视频叠加合成方案

带alpha通道的图片有GIF和PNG,但是GIF只有8位,失真严重,边缘锯齿非常明显. 做动画,其它考虑PNG24,用css3 animations播放.但是,每个都配置太麻烦.综合考虑还是做透明背景的及带alpha通道的视频做背景做好. 带alpha通道可以跟背景融合的视频,常用有三种格式 微软 AVI,微软压缩比太差,文件太大. 苹果mov,在windows平台,要装相关插件. 谷歌webM,只要与新版chrome即支持. webM 与webP是一个爹养的,在网络应用绝佳--高压缩比高保真

OVS中对于用户层和datapath层的多个通道利用epoll进行控制

这里先暂时记录下代码流程,有待完善. static int construct(struct ofproto *ofproto_) { struct ofproto_dpif *ofproto = ofproto_dpif_cast(ofproto_); const char *name = ofproto->up.name; int max_ports; int error; int i; error = dpif_create_and_open(name, ofproto->up.type

unity之win10透明通道不渲染的问题解决办法

unity在做win10开发时候有个坑,画了个透明通道,在OpenGL和direct11下一拉窗口改变,透明通道就会消失. 还有就是direct9下面,按Win+L,再登录回来,透明通道也是会消失. 是unity停止渲染了,一定要改变窗口大小才能渲染,所以出了这个一个办法: void Update () { Screen.SetResolution(Screen.width, Screen.height, false); } 看是多此一举,但是它强迫unity进行窗口重绘.

怎么给一个贴图创建透明通道

比如我刚做了一个简单的法阵,源文件在此. 源文件最开始由两个图层构成,一个图层是外城的圆环,另一个图层是三角形,最后把这两个图层合并成一个图层,然后ctrl+A,到通道面板,创建新通道,ctrl+V,这样就可以了.我见的大部分游戏贴图的透明通道和RGB通道几乎是一样的,尤其是国内的很多事这样的,3A游戏上古卷轴5里面的贴图由很多是RGB通道和透明通道是不一样的,有的甚至是RGB通道是白色的,透明通道里面放置一些图案.

iOS 合并带有透明通道的视频-

视频的合成,透明通道是大家所熟知的 透明通道是一个致力于公益活动全程透明化的组织. 在图形图像学中,透明通道也称Alpha通道,代表数字图像中像素点的透明信息.白色的Alpha像素用以定义不透明的彩色像素,而黑色的Alpha定以透明像素,黑白之间的灰阶则是彩色图片中的半透明部分.-----摘自百度百科 所以在合并雪花,灯光,爆破... 这里就需要有透明通道的视频. 这里我用的是GPUImage 这个工具,可以讲雪花无缝隙的结合起来,说到这里,大家最好会使用一点ps,在图片滤镜处理的时候,可以通过

解析IE, FireFox, Opera 浏览器支持Alpha透明的方法

先请看如下代码: filter:alpha(opacity=50);       /* IE */  -moz-opacity:0.5;              /* Moz + FF */  opacity: 0.5;           /* 支持CSS3的浏览器(FF 1.5也支持)*/ 简单解释,IE使用私有属性filter:alpha(opacity),Moz Family使用私有属性-moz-opacity,而标准的属性是opacity(CSS 3, Moz Family部分支持C

[MFC]图形附加alpha透明通道

修改图形并且附加透明通道: 要附加透明度,可以要把图片转化为32位png图片,然后设置相应的alpha值: 1.      如何把一张图片修改为32位的Png: a)        读取原图片颜色信息 b)        创建一张32位并且带透明的位图 例如: 创建带透明的DIB图形(DIB:设备无关图形) CImageimage; image.Create(nWidth(),nHeight(), 32,CImage::createAlphaChannel); byte*pHead= (byte

怎样用EDIUS制作素材透明通道

在图形图像学中,透明通道也称Alpha通道,代表数字图像中像素点的透明信息.在EDIUS非线性编辑软件中,若想做出透明通道的效果,也就是在上层素材中可以隐约看到下层素材某部分的效果,这就需要设置透明度了今天的EDIUS教程就来给你演示一遍透明通道做出来的过程吧. 若有疑问可直接访问:http://www.ediuschina.com/changjian/toumingtongdao-zhizuo.html 1.打开视频轨道的透明度设置(向右的小三角),选中混合器MIX,此时该轨道变宽且出现一道蓝