前几天是贴子打不开,老是显示XML错误,现在又发现全文搜索成那个脸的了,好像不是在以前的贴子里搜了,出来的结果也是千奇百怪的,是不是CSDN搜索引擎换东家了?nnd,只好发贴提问了,是不是需要借助第三方控件?
PS:分数只给解答问题的,帮顶,混分的一律无视
另外,《[召集]打造CSDN史上最强群星闪耀贴》已经结了
使用GraphicEx
GraphicEx 是Delphi附加的Graphics.pas单元让你可以读取、转换多种图像格式。
打开Delphi7主界面,选择Component|Install Component,单击弹出的对话框中的Unit file name栏后面的Browse...按钮,从Unit file name对话框中找到并选中GraphicEx.pas、GraphicCompression.pas两文件,单击打开按钮,返回Install Component对话框,单击Ok就可以将GraphicEx图像控件添加到dclusr.bpk组件包中,这样,只要在窗体中使用了TImage控件,就可以打开各种GraphicEx图像控件所支持的图像文件格式了。注意:该控件其实是类库,并没有可视的组件会出现在新的组件面板上。GraphicEx目前支持30多种图像格式。有GraphicEx.chm和GraphicEx.hlp两个版本帮助文件。
-----------------------------------------------------------------------
TIFF images (*.tif; *.tiff),
GFI fax images (*.fax),
SGI images (*.bw, *.rgb, *.rgba, *.sgi),
Autodesk images files (*.cel; *.pic),
Truevision images (*.tga; *.vst; *.icb; *.vda; *.win),
ZSoft Paintbrush images (*.pcx, *.pcc; *.scr),
Kodak Photo-CD images (*.pcd),
Portable pixel/gray map images (*.ppm, *.pgm, *.pbm),
Dr. Halo images (*.cut, *.pal),
CompuServe images (*.gif),
SGI Alias/Wavefront images (*.rla, *.rpf),
Standard Windows bitmap images (*.bmp, *.rle, *.dib),
Photoshop images (*.psd, *.pdd),
Paintshop Pro images (*.psp),
Portable network graphic images (*.png).
uses Jpeg,hhx_tiff //加入头文件
var
Tif:TTIFFFile;
Jpg:TJpegImage;
begin
Tif:=TTIFFFile.Create;
Tif.LoadFromFile(FIleName);
Jpeg:=TJpegImage.Create;
Jpeg.Assign(Tif);
Tif.Free;
Jpeg.SaveToFile(SaveName);
Jpeg.Free;
end;
TIFF只是一种容器格式,GraphicEx只支持一些常见的tiff图像格式,不支持你的TIFF图是正常的。另外GraphicEx在颜色空间转换上有严重问题,YCrCb支持不全,CIELab/CMYK转RGB有严重色偏。
支持格式最多的开源库是libtiff,像JPEG2000这类的压缩格式都可以通过调用其它库实现。完全用纯C开发完成,如果有相关经验,是可以将其封装成JPEGImage类似的class的。只需要自己补充一些C库函数。
有兴趣可以看看libtiff中的tiff.h,看看其中Tag的定义,你就能知道现有比较流行的利用TIFF做容器格式的图像格式有多少了。
像其它的一些Pascal写的库,基本上只支持存成TIFF的不压缩RGB位图,我想这对多数人来说,基本无难度可言。而这些代码基本上也没有实用价值。
其实连GDI+对TIFF的支持都非常糟糕。