8位图像灰度显示 |
尚未結案
|
yuan_aoi
一般會員 發表:3 回覆:3 積分:1 註冊:2005-06-06 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
Q: 建立灰階調色盤, 會影響速度嗎?
A: 當然是會的,因為至少要建立一次。但是同樣地,修改系統 256 色盤
變成灰階色盤也是需要一次修改時間。 您的問題在於「每次要創建」,但是以我的經驗,灰階調色盤在程式一開始
就先建立一個,之後顯示灰階圖只需參考它,並不需要每次創建,這樣速度
就不會有什麼影響了。 C# 初學者請多指教 < href="http://free.greenworld.com.tw/~dllee/" target="blank">吃軟也吃硬 dllee.ktop.com.tw dllee's sharespace Beckhoff Fieldbus VMASK
------
http://www.ViewMove.com |
yuan_aoi
一般會員 發表:3 回覆:3 積分:1 註冊:2005-06-06 發送簡訊給我 |
但是我创建调色板,一次调用后,再调用就变了,代码如下:
implementation //程序实现 var Pal: TMaxLogPalette;
lpPalette:pLogPalette;
palette:hPalette; //创建系统调色板
procedure ini_lpPalette;
var i:integer;
begin
getmem(lpPalette,sizeof(TLogPalette) (255*sizeof(TPaletteEntry)));
lpPalette^.palVersion:=$300;
for i:=0 to 255 do begin
lpPalette^.palPalEntry[i].peRed:=i;
lpPalette^.palPalEntry[i].peGreen:=i;
lpPalette^.palPalEntry[i].peBlue:=i;
lpPalette^.palPalEntry[i].peFlags:=i;
end;
palette:=createpalette(lpPalette^);
end;
//创建8位灰度图像显示调色板
procedure pf8bit_hdbm_show(bitmap:tbitmap);
var i:integer;
begin
if Bitmap.PixelFormat=pf8bit then begin
bitmap.IgnorePalette:=false;
bitmap.Palette:=palette;
end
else begin
bitmap.IgnorePalette:=true;
end;
end; initialization
//创建系统调色板
ini_lpPalette;
finalization
freemem(lpPalette,sizeof(TLogPalette) (255*sizeof(TPaletteEntry)));
DeleteObject(palette);
end.
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
經您一說,原來我舊有的程式還真的有一點問題 < >
還好,還是可以簡單的解決< > 以您的程式來說,只需要把指定色盤的那一行: bitmap.Palette:=palette; 改成 bitmap.Palette:=createpalette(lpPalette^); 就可以了,我已實測過,建再多個也不會使 USER/GDI/HANDLE 增加,
當然,有 create Bitmap 用完記得要 free 就不會使 USER/GDI/HANDLE 增加,
您可以寫個測試程式,開工作管理員(task manager)看一下就知道。 C# 初學者請多指教 < href="http://free.greenworld.com.tw/~dllee/" target="blank">吃軟也吃硬 dllee.ktop.com.tw dllee's sharespace Beckhoff Fieldbus VMASK
------
http://www.ViewMove.com |
Yuan_Delphi
一般會員 發表:0 回覆:1 積分:0 註冊:2006-08-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |