Delphi 中使用封装的TWICImage加载不同类型的图片

WIC全称为 Microsoft Windows Imaging Component 

在没有TWICImage之前,如果只有一个文件或一个文件流,想要正确加载到TImage可不是一件简单的事。

Graphics单元默认也是按照文件后缀名自动选择相应的图像类来加载,而一旦没有后缀名或后缀名不准确,则会导致加载图片失败(文件流Stream是没有后缀名的)。

 

通常的做法是读取图片数据的类型格式标识(文件头,签名,格式特征等,如BMP是以BM开头的),此方法需要了解尽可能多的图片存储格式,

此外,还需要引用各种图片的支持单元(如 GIFImage.pas, JPEG.pas,PNGImage.pas 等...)

现在有了TWICImage,可以直接调用Windows提供的图像处理组件,支持各种各样的图片类型,由于TWICImage是继承了TGraphic,所以直接就可以加载到TImage中使用,真的是太方便的了,可惜没法跨平台使用。

另外TWICImage封装了ImagingFactory类库,此类库也是Windows以类工厂的方式提供的各种各样图片处理接口(翻转,裁剪,缩放等...)

 

var
  aImg: TWICImage;
begin
  aImg := TWICImage.Create;
  aImg.LoadFromFile('c:\temp\test.jpg');
  //aImg.LoadFromFile('c:\temp\test.png');
  // ...
  Image1.Picture.Assign(aImg); //显示图片
  aImg.Free;
end;

 

posted on 2016-08-18 14:06  峋山隐修会  阅读(1465)  评论(0编辑  收藏  举报

导航