⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 167.htm

📁 水木清华的BBS文章
💻 HTM
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.tsinghua.edu.cn"><font face="黑体"><big><big>水木清华★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center">         Delphi编程                            (BM: strayli FlyingBoy)          </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p   align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="454"> <p align="center">[<a href="index.htm">回到开始</a>][<a href="7.htm">上一层</a>][<a href="168.htm">下一篇</a>]
<hr><p align="left"><small>发信人: pitts (痛并快乐着), 信区: Delphi <br>

标  题: WINDOWS基于调色板的图像消隐 <br>

发信站: BBS 水木清华站 (Tue Oct 13 10:47:52 1998) WWW-POST <br>

  <br>

    图像渐隐在Windows的多媒体程序设计中是一种常用的技 <br>

术,主要用来制作程序片头或者多幅图像之间的切换等。利用图 <br>

像渐隐技术可以使程序具有动画效果,从而增添程序的魅力。 <br>

图像渐隐实现的方法很多,例如利用调色板以及利用光栅映射模 <br>

式等,而调色板方法无疑是其中最快速的一种。需要指出的是, <br>

这种方法只能在基于调色板的显示模式下工作。在Windows的显 <br>

示模式中,只有256色模式是基于调色板的,这种模式是多媒体 <br>

程序经常采用的。 <br>

在基于调色板的256色模式下,当一幅图像显示时,Windows把 <br>

图像的逻辑调色板载入,并通过调色板映射把逻辑调色板映射到 <br>

系统调色板,图像的每一像素的显示颜色都映射自系统调色板的 <br>

一个颜色索引值,每个索引对应一个24位的RGB全彩色值。当 <br>

系统调色板改变时,当前引用系统调色板的窗口的像素颜色也随 <br>

之改变,而这种改变是系统在硬件刷屏中自动完成的,速度极快, <br>

这样就为我们利用调色板实现图像的动画渐隐提供了引擎。实际 <br>

上,利用这种技术可以实现多种动画效果,图像渐隐只是其中的 <br>

一种。 <br>

在下面的例子中,首先在窗口的黑色背景上显示一幅256色的DIB <br>

图像,然后在系统时钟消息进程中动态地修改图像的逻辑调色板 <br>



的颜色值,使每一个颜色值逐渐向背景颜色值趋近,渐隐的速度 <br>

可以用时钟的时间片间隔来控制。当渐隐开始时,可以看到整幅 <br>

图像逐渐变暗,最后消失在黑色的背景中,整个过程十分平滑, <br>

就如你在电影片头中看到的一样。 <br>

本例用Delphi 1.0在Windows 3.2下实现,下面给出程序的主 <br>

要部分及注释。 <br>

unit Bmp-Disaper; <br>

interface <br>

uses <br>

SysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Con <br>

trols,Forms,Dialogs,ExtCtrls,StdCtrls; <br>

type <br>

TForm1=class(TForm) <br>

Image1:TImage;{显示渐隐图像} <br>

Timer1:TTimer;{时钟构件} <br>

Panel1:TPanel;{显示渐隐过程,已渐隐为背景色的颜色数} <br>

Button1:TButton;{开始渐隐按钮} <br>

procedure Timer1 Timer(Sender:TObject);{始终控制过程} <br>

procedure Button1 Click (Sender:TObject);{激发渐隐过程} <br>

procedure FormCreate (Sender:TObject);{窗体构造过程} <br>

private <br>

PalDevice:Imteger;{调色板模式标志} <br>

PalDevice:Imteger;{调色板模式标志} <br>

go:integer;{渐隐开始标志} <br>

pal:arrar[0...255] of TPaletteEntry;{逻辑调色板} <br>

end; <br>

var <br>

Form1:TForm1; <br>

  <br>

implementation <br>

{$R *.DFM} <br>

procedure TForm1.Timer1Timer(Sender:TObject); <br>

var <br>

i,n:integer; <br>

begin <br>

if go=1 then{开始渐隐} <br>

begin <br>

for i:=0 to 255 do{调色板颜色值递减} <br>

begin <br>

  <br>

pal[i].peFlags:=PC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -