|  | 
 
| vkill 金牌会员
 
       
 
 
 
 积分 4103
 发帖 1744
 注册 2006-1-20
 来自 甘肃.临泽
 状态 离线
 | 
|     『楼 主』:
 论坛色彩渐变代码生成器.bat
 
使用 LLM 解释/回答一下 
 
 
需要sed.exe @echo off
 title 论坛色彩渐变代码生成器   V-1.2   by-vkill
 
 ::默认config:::::::::::::::::::::::::::::::::::::::::
 ::说明%txt%为临时文件,你可以随便自定义
 set "起始色=FF0000"
 set "结束色=0000FF"
 set "显示文字=test color"
 set "txt=ubb.txt"
 :::::::::::::::::::::::::::::::::::::::::::::::::::::
 
 ::依赖文件完整性检查
 sed.exe >nul 2>nul
 if "%ERRORLEVEL%"=="9009" (
 echo 缺少程序依赖文件sed.exe
 echo 请到http://www.yx127.com/tools.html页面下载再运行此程序
 pause>nul
 goto :eof
 )
 
 :::::::::::::::::::::::::::::::::::::::::::::::::::::
 :start
 cls
 endlocal
 setlocal ENABLEDELAYEDEXPANSION
 echo.
 echo 直接回车表示默认,输入格式请遵照默认的例子
 echo.
 set "str=起始色;结束色;显示文字"
 for %%? in (%str%) do (set/p=<nul)
 echo.
 echo.
 for %%? in (%str%) do (set/p=%%?=<nul&set/p "%%?= ")
 if "%起始色%*"=="%结束色%*" (echo 貌似没有变色哦&pause>nul&goto start)
 echo.
 echo 开始转换,稍等...
 :::::::::::::::::::::::::::::::::::::::::::
 
 set "显示文字= !显示文字!"
 
 ::计算%显示文字%的位数
 for /f %%? in ('echo "%显示文字%"^|sed "s/^\x22//;s/\x22$//;s//&\n/g;s//&\n/g"^|sed -n "$="') do (set/a ww=%%?-1)
 
 ::转换%起始色%和%结束色%到10进制
 call :h2d %起始色%
 set/p ad=<%txt%
 call :h2d %结束色%
 set/p zd=<%txt%
 
 ::计算隔多少放一个颜色
 if %ad% lss %zd% (set "max=%zd%"&set "min=%ad%"&set "顺=是") else (set "max=%ad%"&set "min=%zd%"&set "顺=否")
 set/a "n1=%max%-%min%"
 set/a "n2=%n1%/%ww%"
 
 
 ::计算出每个字的颜色并转换到16进制
 for /l %%? in (1,1,%ww%) do (
 set/a #%%?=%n2%*%%?+%min%
 call :d2h !#%%?!
 set/p #%%?=<%txt%
 )
 
 ::写*
 echo "%显示文字%"|sed "s/^\x22//;s/\x22$//;s//⒈&⒉/g;s//⒈&⒉/g"|sed "s/⒈//g;s/⒉//g"|more>%txt%
 
 ::替换每个字的颜色
 set/p var=<%txt%
 if "%顺%*"=="是*" (call :换色 1 1 %ww%)
 if "%顺%*"=="否*" (call :换色 %ww% -1 1)
 
 echo ok,生成的代码在%txt%文件中,任意键后自动打开%txt%文件,请手动复制
 pause>nul
 start %txt%
 goto start
 
 
 ::::::::::::::::::::::::::all call::::::::::::::::::::::::::::
 
 ::------------------------------------------------------------
 :h2d
 ::16进制转10进制
 endlocal
 setlocal ENABLEDELAYEDEXPANSION
 set hs=%1
 set /a sum=0x!hs!
 >%txt% echo %sum%
 goto :eof
 
 ::------------------------------------------------------------
 :d2h
 ::10进制转16进制
 endlocal
 setlocal enabledelayedexpansion
 set "hs=%1"
 :loop_d2h
 set/a z=%hs%/16
 set/a y=%hs%%%16
 if %z% lss 16 (
 call :zh_d2h %y%
 call :zh_d2h %z%
 goto loop_end_d2h ) else (call :zh_d2h %y%)
 set hs=%z%
 goto loop_d2h
 :loop_end_d2h
 >%txt% echo %sum%
 goto :eof
 :zh_d2h
 if %1 GEQ 10 (
 if "%1*"=="10*" set var=A
 if "%1*"=="11*" set var=B
 if "%1*"=="12*" set var=C
 if "%1*"=="13*" set var=D
 if "%1*"=="14*" set var=E
 if "%1*"=="15*" set var=F
 ) else (set var=%1)
 set sum=!var!%sum%
 goto :eof
 
 ::------------------------------------------------------------
 :补位
 endlocal
 setlocal enabledelayedexpansion
 set "hs=%1"
 :loop_补位
 if "!hs:~5,1!*"=="*" (
 set "hs=0!hs!"
 goto loop_补位
 )
 >%txt% echo !hs!
 goto :eof
 
 ::-----------------------------------------------------------
 :换色
 endlocal
 setlocal enabledelayedexpansion
 for /l %%a in (%1,%2,%3) do (
 call :补位 !#%%a!
 set/p #color=<%txt%
 for /f "tokens=*" %%? in ('echo "!var!"^|sed "s/^\x22//;s/\x22$//;s/↑/!#color!/"') do (set "var=%%?")
 )
 echo "!var!"|sed "s/^*//g;s/*$//g"|more>%txt%
 goto :eof
 
 
 Last edited by vkill on 2007-3-14 at 02:26 AM ]
 
 
 | 此帖被 +60 点积分        点击查看详情 | 评分人:【 9527 】 | 分数: +11 | 时间:2007-3-11 01:42 |  | 评分人:【 lxmxn 】 | 分数: +20 | 时间:2007-3-11 06:19 |  | 评分人:【 HUNRYBECKY 】 | 分数: +5 | 时间:2007-3-14 21:23 |  | 评分人:【 redtek 】 | 分数: +20 | 时间:2007-3-14 22:18 |  | 评分人:【 qasa 】 | 分数: +4 | 时间:2007-4-4 11:44 | 
 | 
 
 
 
 |  | 
|  2007-3-11 01:20 |  | 
|  | 
 
| vkill 金牌会员
 
       
 
 
 
 积分 4103
 发帖 1744
 注册 2006-1-20
 来自 甘肃.临泽
 状态 离线
 | 
| 『第 2 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
效果:
 bbs.cn-dos.net 爱你~
 
 特殊字符测试
 !@#$%^&*()_+-={}|]\:";'<>?,./
 
 
 
 @#$%^&*()_+-={}|]\:;'<>?,./
 
 Last edited by vkill on 2007-3-16 at 01:47 AM ]
 
 
 
 
 |  | 
|  2007-3-11 01:20 |  | 
|  | 
 
| huzixuan 高级用户
 
     
 
 
 积分 537
 发帖 219
 注册 2006-10-31
 来自 芜湖
 状态 离线
 |  | 
|  2007-3-11 01:30 |  | 
|  | 
 
| huzixuan 高级用户
 
     
 
 
 积分 537
 发帖 219
 注册 2006-10-31
 来自 芜湖
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
呦!挺好用的!!!!!!!!!!!!!!!!!!!! 
 
 
 
 
 |  
                  |  江湖远
 碧空长
 路茫茫
 
 一个人漫无目的的奔跑,风,刺骨的冷....
 |  | 
|  2007-3-11 01:31 |  | 
|  | 
 
| slore 铂金会员
 
        
 
 
 
 积分 5212
 发帖 2478
 注册 2007-2-8
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
bbs.cn-dos.net 爱你~
 !@#$%^&*()_+-={}|]\:";'<>?,./
 
 你的颜色的过渡效果太差了吧。
 
 
 
 
 |  | 
|  2007-3-11 01:37 |  | 
|  | 
 
| ccwan 金牌会员
 
       
 
 
 积分 2725
 发帖 1160
 注册 2006-9-23
 来自 河北廊坊
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
该死的vk,居然趁我吃饭的工夫发帖,自己抢沙发,害得我连板凳都没得坐。
 Last edited by ccwan on 2007-3-11 at 01:40 AM ]
 
 
 
 
 
 |  
                  |  三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
 |  | 
|  2007-3-11 01:38 |  | 
|  | 
 
| vkill 金牌会员
 
       
 
 
 
 积分 4103
 发帖 1744
 注册 2006-1-20
 来自 甘肃.临泽
 状态 离线
 | 
| 『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by slore at 2007-3-11 01:37:bbs.cn-d
 
 望指教一二
 
 
 
 
 |  | 
|  2007-3-11 01:48 |  | 
|  | 
 
| slore 铂金会员
 
        
 
 
 
 积分 5212
 发帖 2478
 注册 2007-2-8
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
FF0000然后中间的00从0开始增加到FF
 成
 FFFF00
 然后第前2个FF开始减少到0
 00FF00
 …………
 00FF00~00FFFF
 
 00ffff~0000FF(绿色的减少)
 0000FF~FF00FF(红色的增加上来)
 最后蓝色的FF逐渐减少,就成FF0000
 那么就从红到红了,完成了变化。
 自己可以在桌面属性的那个自定义颜色里把鼠标从左上角缓慢拖到右上角……自己看看R G B的变化情况。
 这个是彩虹色的过渡……
 
 
 
 
 |  | 
|  2007-3-11 02:17 |  | 
|  | 
 
| vkill 金牌会员
 
       
 
 
 
 积分 4103
 发帖 1744
 注册 2006-1-20
 来自 甘肃.临泽
 状态 离线
 | 
| 『第 9 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
再测试123456789.
 
 
 bbs.cn-dos.net 爱你~
 
 
 哈哈!·#¥%……—*()——+
 
 
 
 test color
 
 
 
 
 
 还是不明白slore兄所说的
 
 Last edited by vkill on 2007-3-14 at 02:12 AM ]
 
 
 
 
 |  | 
|  2007-3-11 02:22 |  | 
|  | 
 
| slore 铂金会员
 
        
 
 
 
 积分 5212
 发帖 2478
 注册 2007-2-8
 状态 离线
 | 
| 『第 10 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
为了gif文件的大小,图质量不好,不过足以说明效果。
 你仔细看R G B数值的变化情况
 
 
 
 
 
附件
1:  1.gif (2007-3-11 02:35, 32.9 KiB,下载次数: 4) 
 
   
 |  | 
|  2007-3-11 02:35 |  | 
|  | 
 
| vkill 金牌会员
 
       
 
 
 
 积分 4103
 发帖 1744
 注册 2006-1-20
 来自 甘肃.临泽
 状态 离线
 |  | 
|  2007-3-11 02:37 |  | 
|  | 
 
| zh159 金牌会员
 
       
 
 
 积分 3687
 发帖 1467
 注册 2005-8-8
 状态 离线
 |  | 
|  2007-3-11 02:41 |  | 
|  | 
 
| slore 铂金会员
 
        
 
 
 
 积分 5212
 发帖 2478
 注册 2007-2-8
 状态 离线
 | 
| 『第 13 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by vkill at 2007-3-10 13:37:我是每隔一段10进制的数来给一个字符上色的,看来这个方法不可行
 
我以前也是那样=。= 
但是彩虹的过渡不是按10进制递增的。。。 
 
 
 
 |  | 
|  2007-3-11 02:43 |  | 
|  | 
 
| vkill 金牌会员
 
       
 
 
 
 积分 4103
 发帖 1744
 注册 2006-1-20
 来自 甘肃.临泽
 状态 离线
 | 
| 『第 14 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
re slore那是怎么递增的那?好象有些10进制转换到16进制,那个16进制就没有颜色是不?
 
 
 
 
 |  | 
|  2007-3-11 02:46 |  | 
|  | 
 
| slore 铂金会员
 
        
 
 
 
 积分 5212
 发帖 2478
 注册 2007-2-8
 状态 离线
 |  | 
|  2007-3-11 02:48 |  |