| 
 
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 | 
  
 |