|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
您现在的位置: ChinaBeta.cn 中文IT资讯 >> 网盟学院 >> 编程类 >> 其它编程程序 >> 网管技术正文
推荐网管技术[多图]即将发布的Microsoft Of…推荐网管技术Asp生成静态网页
推荐网管技术让我穿过那道"墙"! 畅游网络应…推荐网管技术文件夹变身磁盘 查看共享有新招…
推荐网管技术防患于未然!终截者抗病毒软件…推荐网管技术主动防御!瑞星杀毒2008抢先评…
推荐网管技术玩转虚拟光驱:DAEMON TOOLS P…推荐网管技术速度超快 Discuz! 6.0.0试用手…
推荐网管技术当设计遇上PC:LG XPION A10图…推荐网管技术奇虎举证:各杀毒软件均报CNNIC…
推荐网管技术Google Earth 4.2加入繁体中文…推荐网管技术Photoshop CS3:蔚蓝梦幻风格婚…
推荐网管技术专业防护!瑞星防火墙2008测试…推荐网管技术挂载RAR文件 从认识到爱上WinM…
推荐网管技术让你冲浪随心所欲 如何访问被封…推荐网管技术轻装上阵!江民杀毒软件2008速…
推荐网管技术VMware Fusion苹果版全程图解(…推荐网管技术VMware Fusion苹果版全程图解(…
推荐网管技术从菜鸟出发!征服高清详细评测全…推荐网管技术VS2008和ASP.NET 3.5使用之初体…
推荐网管技术迅雷 快车 电驴 eMule下载飚速…推荐网管技术实战967种木马 木马清道夫2007…
推荐网管技术[多图]Ubuntu 7.04 初体验推荐网管技术东风吹战鼓擂 下载软件你选谁?
推荐网管技术若隐若现 Windows XP DirectX …推荐网管技术GPRS上网全攻略
推荐网管技术主流杀毒软件Vista兼容性横评推荐网管技术基于IRF的网络管理和业务管理解…
GDI+在Delphi中的应用:多帧(页)图像的分解与合成
Www.ChinaBeta.Cn 更新时间:2008-5-6

【ChinaBeta.Cn 网盟学院】

在GDI+支持的各种图像格式,gif格式和tiff格式图像可包含多帧(页)图片,GDI+可以很方便的分解和合成多帧(页)图片。

下面是个简单的多帧(页)图片分解与合成例子:

unit main1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Gdiplus, GdipTypes, ActiveX;

{$R *.dfm}

// 把多帧图像分解为单图像保存到文件
procedure TForm1.Button1Click(Sender: TObject);
var
I, Count: Integer;
Clsid: TClsid;
Parameters: TEncoderParameters;
Quality: Integer;
Image: TGpImage;
GUID: TGUID;
begin
// 打开图像文件
Image := TGpImage.Create(’hbmap108.gif’);
try
// 获取图像所有帧维度的GUID,这里我们只取第一个
Image.GetFrameDimensionsList(@GUID, 1);
// 通过获取维度的GUID,取得图像的帧(页)数量
Count := Image.GetFrameCount(GUID);

// 下面设置自定义的编码参数,这里为1个参数
Parameters.Count := 1;
// 设置参数唯一标志的GUID,这里为编码品质
Parameters.Parameter[0].Guid := EncoderQuality;
// 设置参数值的数据类型为长整型
Parameters.Parameter[0].ValueType := EncoderParameterValueTypeLong;
Parameters.Parameter[0].NumberOfValues := 1;
// 设置参数的值:品质等级,最高为100,图像文件大小与品质成正比
Quality := 100;
Parameters.Parameter[0].Value := @Quality;

// 获取图像格式JPEG编码器的ClsID
GetEncoderClsid(’image/jpeg’, Clsid);

// 选择图像的各个帧为当前帧,并依次保存为jpg文件
for I := 0 to Count - 1 do
begin
Image.SelectActiveFrame(GUID, I);
Image.Save(’Hb’ + IntToStr(I) + ’.jpg’, Clsid, @Parameters);
end;
finally
Image.Free;
end;
end;

// 将单个图像合并为多帧图像,GDI+不支持GIF合成,只能合并为tiff格式
procedure TForm1.Button2Click(Sender: TObject);
var
Parameters: TEncoderParameters;
Value: TEncoderValue;
Img, tmp: TGpImage;
I: Integer;
Clsid: TClsid;
begin
// 下面设置自定义的编码参数,这里为1个参数
Parameters.Count := 1;
// 设置参数唯一标志的GUID,这里为保存标记
Parameters.Parameter[0].Guid := EncoderSaveFlag;
Parameters.Parameter[0].NumberOfValues := 1;
Parameters.Parameter[0].ValueType := EncoderParameterValueTypeLong;
// 设置参数的值。这里只把Value地址赋给了参数值,Value在后面具体赋值
Parameters.Parameter[0].Value := @Value;

// 打开第一个图像,这里的图像是前面代码分解后保存的jpg文件
Img := TGpImage.Create(’Hb0.jpg’);
try
// 获取图像格式tiff编码器的ClsID
GetEncoderClsid(’image/tiff’, Clsid);
// 在保存第一帧图像时,编码参数值设置为多帧
Value := EncoderValueMultiFrame;
// 保存第一帧图像
Img.Save(’Hb.tif’, Clsid, @Parameters);
// 保存随后的各帧图像时,编码参数值设置为维度页
Value := EncoderValueFrameDimensionPage;

// 依次打开后面的图像,保存到Hb.tif文件,本例图片为24帧
for I := 1 to 23 do
begin
tmp := TGpImage.Create(’Hb’ + IntToStr(I) + ’.jpg’);
try
Img.SaveAdd(tmp, @Parameters);
finally
tmp.Free;
end;
end;
finally
Img.Free;
end;

end;

end.

[1] [2] 下一页  

Google

(责任编辑:hahack)

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门文章 相关报道
普通网管技术 [其它编程程序]GDI+在Delphi中的应用:多帧(页)图… (05-06)最新网管技术
普通网管技术 [其它编程程序]Delphi之东进模拟语音卡(D160A)可… (05-06)最新网管技术
普通网管技术 [其它编程程序]PB窗口之间传递多参数的方法 (05-06)最新网管技术
普通网管技术 [其它编程程序]PB7.0简化Web开发 (05-06)最新网管技术
普通网管技术 [其它编程程序]用Web.PB开发瘦客户机 PB Web应用 (05-06)最新网管技术
普通网管技术 [其它编程程序]PB内置Oracle数据库接口的使用方… (05-06)最新网管技术
普通网管技术 [其它编程程序]PowerBuilder9实现FLASH动画播放 (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]ASP.NET与Ajax的实现方式 (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET].Net网站独立配置文件读写方案 (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]ASP.NET备份恢复SqlServer数据库 (05-06)最新网管技术
  • Delphi之东进模拟语音卡(D1…

  • PB窗口之间传递多参数的方法

  • PB7.0简化Web开发

  • 用Web.PB开发瘦客户机 PB W…

  • PB内置Oracle数据库接口的使…

  • PowerBuilder9实现FLASH动画…

  • 带你深入了解PowerBuilder的…

  •   网友评论内容:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    I D *
    邮 箱
    主 页
    评 分 1分 2分 3分 4分 5分
    评 论

    关于我们  中国·国家信息产业部{粤ICP备06006652号}{陇ICP备06002562号}
    版权所有:『AK网盟基地』站长:Hahack | QQ:80505955 | E-mail:Hahack@Gmail.com
    Copyright (C) 2005-2007  akhack.org|chinabeta.cn All Rights Reserved