中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] [4] »
作者:
标题: 论坛色彩渐变代码生成器.bat 上一主题 | 下一主题
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 16 楼』:  

re slore
哦,那就是
12 红
34 绿
56 蓝

着三个分段+和-吧??通过调节三段来控制是吗?》

2007-3-11 02:54
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 17 楼』:  

每一个字都需要RGB3个数字表示的颜色去定义,没一个都是0~255即16进制的00~FF

FF0000
FF0100
FF0200
.
.
.
FFFF00
第一部分。

FFFF00
FEFF00
FDFF00
.
.
.
00FF00
第2部分。这些颜色是连续的渐变。。。

每次的间隔是多少要根据字符长度。。看你要分几段了。

2007-3-11 03:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 18 楼』:  

正确的是:得根据每行长度确定渐变不常,如16字符:00-11-22-33-44-55-66-77-88-99-aa-bb-cc-dd-ee-ff;8字符:11-33-55-77-99-bb-dd-ff
比较麻烦,所以统一步骤00-11-22-33-44-55-66-77-88-99-aa-bb-cc-dd-ee-ff看看能不能更好些

以上是例子

[ Last edited by zh159 on 2007-3-10 at 04:29 PM ]

2007-3-11 05:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xswdong
中级用户





积分 216
发帖 129
注册 2007-2-14
状态 离线
『第 19 楼』:  

ceshikankanxiaoguo

2007-3-11 05:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 20 楼』:  

试了下最多支持51个字符的着色

2007-3-11 06:08
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 21 楼』:  

从FF0000开始到FF00FF一共有1275个。。。

SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

2007-3-11 06:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 22 楼』:  

·#%*+

这个还可以,转换的

[ Last edited by vkill on 2007-3-11 at 07:03 AM ]

2007-3-11 06:49
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 23 楼』:  

貌似只有2个颜色的过渡?

2007-3-11 06:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 24 楼』:  



  Quote:
Originally posted by slore at 2007-3-11 06:58:
貌似只有2个颜色的过渡?

天知道我怎么弄的

2007-3-11 07:03
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
jackyggt
初级用户





积分 76
发帖 38
注册 2007-3-13
状态 离线
『第 25 楼』:  



2007-3-13 08:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 26 楼』:  

不会用, 不知是怎么回事



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-13 12:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 27 楼』:  

更新了下,现在可以直接处理大多数特殊字符了,已知不可以处理 ! ,还有要是有 " 的话要必须成双的出现,不如说  @#"34%$$ %$^$"

2007-3-14 02:28
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 28 楼』:  

绿
@echo off
setlocal EnableDelayedExpansion
set Num=1
for /l %%i in (1,1,6) do (
  if !Num! LEQ 16 for %%n in (0 1 2 3 4 5 6 7 8 9 a b c d e f) do set color!Num!=ff%%n%%n00&set /a Num+=1
  if !Num! GTR 16 if !Num! LEQ 31 for %%n in (e d c b a 9 8 7 6 5 4 3 2 1 0) do set color!Num!=%%n%%n!color16:~-4!&set /a Num+=1
  if !Num! GTR 31 if !Num! LEQ 46 for %%n in (1 2 3 4 5 6 7 8 9 a b c d e f) do set color!Num!=!color31:~0,4!%%n%%n&set /a Num+=1
  if !Num! GTR 46 if !Num! LEQ 61 for %%n in (e d c b a 9 8 7 6 5 4 3 2 1 0) do set color!Num!=!color46:~0,2!%%n%%n!color46:~-2!&set /a Num+=1
  if !Num! GTR 61 if !Num! LEQ 76 for %%n in (1 2 3 4 5 6 7 8 9 a b c d e f) do set color!Num!=%%n%%n!color61:~-4!&set /a Num+=1
  if !Num! GTR 76 if !Num! LEQ 90 for %%n in (e d c b a 9 8 7 6 5 4 3 2 1) do set color!Num!=!color76:~0,4!%%n%%n&set /a Num+=1
)

:Main
cls
echo.
set Num=
set input=
set /p Num=  输入开始颜色([R]红[G]绿[B]蓝):
for %%n in (R G B) do if /i "%Num%" == "%%n" goto input
goto Main
:input
set /p input=  输入文字:
if not defined input exit
if /i "%Num%" == "R" set Num=0
if /i "%Num%" == "G" set Num=30
if /i "%Num%" == "B" set Num=60

cd.>test.txt
:loop
set /a Num+=1
>>test.txt set /p=[color=!color%Num%!]%input:~0,1%[/color]<nul
set "input=%input:~1%"
if %num% GEQ 90 set Num=
if not "%input%" == "" goto loop
start test.txt
goto Main
exit
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789

2007-3-14 02:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 29 楼』:  

re zh159

我也想过用set/p来单个的着色,但这样处理特殊字符太烂

123456789

字符太少了效果不怎么好,呵呵

[ Last edited by vkill on 2007-3-14 at 03:15 AM ]

2007-3-14 03:14
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 30 楼』:  

绿
::zh159@bbs.cn-dos.net
@echo off
setlocal EnableDelayedExpansion
set Num=1
for /l %%i in (1,1,6) do (
  if !Num! LEQ 16 for %%n in (0 1 2 3 4 5 6 7 8 9 a b c d e f) do set color!Num!=ff%%n%%n00&set /a Num+=1
  if !Num! GTR 16 if !Num! LEQ 31 for %%n in (e d c b a 9 8 7 6 5 4 3 2 1 0) do set color!Num!=%%n%%n!color16:~-4!&set /a Num+=1
  if !Num! GTR 31 if !Num! LEQ 46 for %%n in (1 2 3 4 5 6 7 8 9 a b c d e f) do set color!Num!=!color31:~0,4!%%n%%n&set /a Num+=1
  if !Num! GTR 46 if !Num! LEQ 61 for %%n in (e d c b a 9 8 7 6 5 4 3 2 1 0) do set color!Num!=!color46:~0,2!%%n%%n!color46:~-2!&set /a Num+=1
  if !Num! GTR 61 if !Num! LEQ 76 for %%n in (1 2 3 4 5 6 7 8 9 a b c d e f) do set color!Num!=%%n%%n!color61:~-4!&set /a Num+=1
  if !Num! GTR 76 if !Num! LEQ 90 for %%n in (e d c b a 9 8 7 6 5 4 3 2 1) do set color!Num!=!color76:~0,4!%%n%%n&set /a Num+=1
)

:Main
cls
echo.
set RGB=
set /p RGB=  输入开始颜色([1]红[2]橙[3]黄[4]绿[5]青[6]蓝[7]紫):
for /l %%n in (1,1,7) do if "%RGB%" == "%%n" goto input
echo.
echo   输入开始颜色错误!
echo.
pause
goto Main

:input
set Num=
for %%n in (1 8 16 31 46 61 76) do set /a Num+=1&if "%RGB%" == "!Num!" set RGB=%%n
echo.
set input=
set /p input=  输入文字:
if not defined input exit

set Num=
set "str=%input%"
:Num
set "str=%str:~1%"
set /a Num+=1
if not "%str%" == "" goto Num
set step=1
for %%n in (70 40 20 10) do if %Num% lss %%n set /a step+=1

cd.>test.txt
:loop
>>test.txt set /p=[color=!color%RGB%!]%input:~0,1%[/color]<nul
set /a RGB+=%step%
set "input=%input:~1%"
if %RGB% GTR 90 set RGB=1
if not "%input%" == "" goto loop
start test.txt
goto Main
exit
012345678
0123456789012345678
012345678901234567890123456789012345678
0123456789012345678901234567890123456789
012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789

[ Last edited by zh159 on 2007-3-14 at 01:57 AM ]

   此帖被 +12 点积分      点击查看详情   
评分人:【 vkill 分数: +8  时间:2007-3-16 01:38
评分人:【 qasa 分数: +4  时间:2007-4-4 11:48


2007-3-14 14:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: