
控制臺(tái)虛擬終端序列32位真彩色顯示支持Alpha通道僅限Win10/Win11最后由 HOPE 于 -1-31 14:41您沒(méi)聽(tīng)錯(cuò),Cmd支持 32 位真彩色!我在去年發(fā)了一篇帖子(http://www.bathome.net/viewthread.php?tid=63749),簡(jiǎn)單實(shí)現(xiàn)了控制臺(tái)的繪圖。但我覺(jué)得,僅僅是24位真彩色還不夠。所以我在今天簡(jiǎn)單對(duì)32位色進(jìn)行了支持。32位色說(shuō)起來(lái)也不復(fù)雜,本質(zhì)上還是24位色,只不過(guò)添加了一個(gè) Alpha 通道,經(jīng)過(guò)一定運(yùn)算,將其用 24 位色的形式渲染出來(lái)。下面是32位色轉(zhuǎn)24位色的算法:
下面就是我的實(shí)例:按鍵說(shuō)明:nclick="copycode($('code0'));">復(fù)制代碼
- 輸出 = 前景色 * Alpha / 255 + 背景色 * (255 - Alpha) / 255
源碼:nclick="copycode($('code1'));">復(fù)制代碼
- < / >換檔
- + / -值增/減 1
- O / P值增/減 8
- [ / ]值增/減 16
- @Mode Con: Cols=80 Lines=25 & @Echo Off & @Chcp 936 > Nul & @Title 32 位色測(cè)試
- For /L %%_ in (0,1,3) Do (
- Set lngColor[0][%%_]=127
- Set lngColor[1][%%_]=127
- Set cur[0][%%_]=
- Set cur[1][%%_]=
- )
- Set /A idx1=0
- Set /A idx2=0
- Set cur[%idx1%][%idx2%]=#
- @Call :LoadFunctions
- @Goto :Main
- %= VT100 虛擬終端序列 32 位色嘗試 =%
- :Main
- Set ESC=
- If Not Defined ESC (
- For /F Delims=# %%_ in ('prompt #$E# ^& Echo On ^& For %%$ in ^(1^) Do DosKey') Do Set ESC=%%_
- )
- @Call :Draw
- %_Getch:#ascCode#=ascKey%
- If %ascKey%== @Goto :Main
- Set cur[%idx1%][%idx2%]=
- %==================================================================%
- If %ascKey%==> Set ascKey=.
- If %ascKey%==< Set ascKey=,
- If %ascKey%==. (
- Set /A idx2+=1
- If %idx1% Equ 0 (If %idx2% Equ 2 (Set /A idx1=1,idx2=0))
- If %idx1% Equ 1 (If %idx2% Equ 3 (Set /A idx1=0,idx2

