六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

WINDOWS基于調(diào)色板的圖像消隱

[摘要]圖像漸隱在Windows的多媒體程序設(shè)計(jì)中是一種常用的技術(shù),主要用來(lái)制作程序片頭或者多幅圖像之間的切換等。利用圖像漸隱技術(shù)可以使程序具有動(dòng)畫(huà)效果,從而增添程序的魅力。圖像漸隱實(shí)現(xiàn)的方法很多,例如利用調(diào)色板以及利用光柵映射模式等,而調(diào)色板方法無(wú)疑是其中最快速的一種。需要指出的是,這種方法只能在基于調(diào)...
    圖像漸隱在Windows的多媒體程序設(shè)計(jì)中是一種常用的技術(shù),主要用來(lái)制作程序片頭或者多幅圖像之間的切換等。利用圖像漸隱技術(shù)可以使程序具有動(dòng)畫(huà)效果,從而增添程序的魅力。
圖像漸隱實(shí)現(xiàn)的方法很多,例如利用調(diào)色板以及利用光柵映射模式等,而調(diào)色板方法無(wú)疑是其中最快速的一種。需要指出的是,這種方法只能在基于調(diào)色板的顯示模式下工作。在Windows的顯示模式中,只有256色模式是基于調(diào)色板的,這種模式是多媒體程序經(jīng)常采用的。
    在基于調(diào)色板的256色模式下,當(dāng)一幅圖像顯示時(shí),Windows把圖像的邏輯調(diào)色板載入,并通過(guò)調(diào)色板映射把邏輯調(diào)色板映射到系統(tǒng)調(diào)色板,圖像的每一像素的顯示顏色都映射自系統(tǒng)調(diào)色板的一個(gè)顏色索引值,每個(gè)索引對(duì)應(yīng)一個(gè)24位的RGB全彩色值。當(dāng)系統(tǒng)調(diào)色板改變時(shí),當(dāng)前引用系統(tǒng)調(diào)色板的窗口的像素顏色也隨之改變,而這種改變是系統(tǒng)在硬件刷屏中自動(dòng)完成的,速度極快,這樣就為我們利用調(diào)色板實(shí)現(xiàn)圖像的動(dòng)畫(huà)漸隱提供了引擎。實(shí)際上,利用這種技術(shù)可以實(shí)現(xiàn)多種動(dòng)畫(huà)效果,圖像漸隱只是其中的一種。
    在下面的例子中,首先在窗口的黑色背景上顯示一幅256色的DIB圖像,然后在系統(tǒng)時(shí)鐘消息進(jìn)程中動(dòng)態(tài)地修改圖像的邏輯調(diào)色板的顏色值,使每一個(gè)顏色值逐漸向背景顏色值趨近,漸隱的速度可以用時(shí)鐘的時(shí)間片間隔來(lái)控制。當(dāng)漸隱開(kāi)始時(shí),可以看到整幅圖像逐漸變暗,最后消失在黑色的背景中,整個(gè)過(guò)程十分平滑,就如你在電影片頭中看到的一樣。
本例用Delphi 1.0在Windows 3.2下實(shí)現(xiàn),下面給出程序的主要部分及注釋。

unit Bmp-Disaper;
interface
uses
SysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Controls,Forms,Dialogs,Ex
tCtrls,StdCtrls;
type
TForm1=class(TForm)
Image1:TImage;{顯示漸隱圖像}
Timer1:TTimer;{時(shí)鐘構(gòu)件}
Panel1:TPanel;{顯示漸隱過(guò)程,已漸隱為背景色的顏色數(shù)}
Button1:TButton;{開(kāi)始漸隱按鈕}
procedure Timer1 Timer(Sender:TObject);{始終控制過(guò)程}
procedure Button1 Click (Sender:TObject);{激發(fā)漸隱過(guò)程}
procedure FormCreate (Sender:TObject);{窗體構(gòu)造過(guò)程}
private
PalDevice:Imteger;{調(diào)色板模式標(biāo)志}
go:integer;{漸隱開(kāi)始標(biāo)志}
pal:arrar[0...255] of TPaletteEntry;{邏輯調(diào)色板}
end;
var
Form1:TForm1;

implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender:TObject);
var
i,n:integer;
begin
if go=1 then{開(kāi)始漸隱}
begin
for i:=0 to 255 do{調(diào)色板顏色值遞減}
begin

pal[i].peFlags:=PC-RESERVED;{調(diào)色板動(dòng)畫(huà)標(biāo)志,一定得這樣設(shè)置}
if pal[i].peRed>0 thenpal[i].peRed:=pal[i].peRed-1;
if pal[i].peGreen>0 thenpal[i].peGreen:=pal[i].peGreen-1;
if pal[i].peBlue>0 thenpal[i].peBlue:=pal[i].peBlue-1;
end;
SetPaletteEntries(Image1.Picture.Bitmap.Palette,0,256,pal);
{設(shè)置新的顏色到DIB調(diào)色板}
RealizePalette(Image1.Picture.Bitmap.Canvas.Handle);
{影射邏輯調(diào)色板到系統(tǒng)硬件調(diào)色板}
{計(jì)算已經(jīng)漸隱消失的顏色數(shù),如全數(shù)完成則終止?jié)u隱過(guò)程,令go=0}
n:=0;
for i:=0 to 255 do
if(pal[i].peRed=0) and (pal[i].peGreen=0) and (pal[i].peBlue=0)
then
n:=n+1
if n=256 then
begin
Panel1.Caption:=’OK’;
go:=0;
end
else
Panel1.Caption:=’n=’+IntToStr(n);
end;
end;
procedure TForm1.Button1Click(Sender:TObject);
begin
GetPaletteEntries(Image1.Pictrue.Bitmap.Palette,0,256,pal);
{獲得DIB圖像的調(diào)色板}
{判斷系統(tǒng)是否是基于調(diào)色板的顯示模式,如果是則開(kāi)始漸隱過(guò)程}
PalDevice:=GetDeviceCaps(Canvas.Handle,RASTERCAPS) and RC-PALETTE;
if(PalDevice>0) the go:=1;
end;
procedure TForm1.FormCreate(Sender:TObject);
begin
Image1.Pictrue.Bitmap.LoadFromFile(’c:\video10\ts.bmp’);
{加載DIB圖像}
end;
end.


主站蜘蛛池模板: 午夜视频播放 | 一区小说二区另类小说三区图 | 日韩在线三级视频 | 亚洲黄色网页 | 日本不卡视频一区二区 | 日韩二级片 | 中文字幕在线乱码免费毛片 | 天天插天天透 | 在线观看亚洲免费 | 天天干网址| 日日操视频 | 亚洲精品高清视频 | 伊人色影院 | 伊人网综合 | 欧美综合图片一区二区三区 | 日韩看片网站 | 一二三四免费观看在线8 | 羞羞草视频 | 日韩精品一区二区三区免费视频 | 色吊丝国产永久免费网址 | 中文伊人 | 羞羞人成午夜爽爽影院 | 日日干夜夜欢 | 青春草视频在线播放 | 色黄啪啪网 | 婷婷久久综合九色综合九七 | 日韩视频在线观看中字 | 午夜丁香影院 | 在线观看视频一区二区 | 色久天| 色美女影院 | 欧美亚洲丝袜 | 日本高清视频成人网www | 做性视频| 最新网址在线观看 | 午夜日韩视频 | 午夜影院普通用户体验区 | 日本国产欧美色综合 | 色哒哒影院| 色网在线观看 | 视频在线观看免费网址 |