線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2153
推到 Plurk!
推到 Facebook!

8位图像灰度显示

尚未結案
yuan_aoi
一般會員


發表:3
回覆:3
積分:1
註冊:2005-06-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-26 09:00:43 IP:219.132.xxx.xxx 未訂閱
各位高手,请问8位灰度图像如何显示成灰度图像,用逻辑调色板方式,显得 太罗索,每次要创建影响速度;是否可以修改256色系统调色板,把R,G,B三分量设置相等,灰度显示8位图像?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-02 09:46:52 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-08 11:43:09 IP:219.132.xxx.xxx 未訂閱
但是我创建调色板,一次调用后,再调用就变了,代码如下: 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-09 23:23:43 IP:211.76.xxx.xxx 未訂閱
經您一說,原來我舊有的程式還真的有一點問題 < > 還好,還是可以簡單的解決< > 以您的程式來說,只需要把指定色盤的那一行: 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-11 16:55:32 IP:61.142.xxx.xxx 訂閱
如何知道当前图像的调色能正确显示8位灰度图像?辟免已经有调色板又重新重建
系統時間:2024-05-14 4:15:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!