Delphi 2010 新增功能之: TWICImage 类[3] - 图像的比例变换
TWICImage 的 Width、Height 属性, 可以读取但不能赋值.
调整 TWICImage 的大小、比例, 可以通过 IWICBitmapScaler 接口.
//IWICBitmapScaler.Initialize 函数有四种比例变换的算法: WICBitmapInterpolationModeNearestNeighbor = 0; WICBitmapInterpolationModeLinear = $1; WICBitmapInterpolationModeCubic = $2; WICBitmapInterpolationModeFant = $3;
测试代码:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Wincodec; procedure TForm1.Button1Click(Sender: TObject); var WicImg: TWICImage; Factory: IWICImagingFactory; Scaler: IWICBitmapScaler; {图像比例变换接口} begin WicImg := TWICImage.Create; WicImg.LoadFromFile('c:\temp\test.jpg'); Factory := WicImg.ImagingFactory; Factory.CreateBitmapScaler(Scaler); Scaler.Initialize(WicImg.Handle, WicImg.Width div 2, WicImg.Height div 3, WICBitmapInterpolationModeFant); WicImg.Handle := IWICBitmap(Scaler); Canvas.Draw(0, 0, WicImg); Scaler := nil; Factory := nil; WicImg.Free; end; end.
好的代码像粥一样,都是用时间熬出来的
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2018-12-27 如何实时获取DBGrid 中当前单元格输入的内容?
2018-12-27 ADO.NET中DataSet、DataTable、DataRow的数据复制方法
2018-12-27 Delphi Dataset CurValue