RT:    我有一个输入框输入字符后点击按钮生成图片jpg格式。
        将输入的字符信息转换为条码并显示在图片位置;
录入字符长度不得长于20字符,且必须为数字、字母、半角符号;
点击保存文件可在应用程序根目录下生成以字符命名的jpg文件(注意某些字符不支持作为文件名);
生成的条码必须是Code-128的一维条码
另外附上ASP源码。欢迎各位高手进行讨论
--------------------------------------------------------------------------------------------------------------
<%
'网站
Dim barcode(106)
barcode(0)="||_||__||__" ' 空格
barcode(1)="||__||_||__" ' !
barcode(2)="||__||__||_"
barcode(3)="|__|__||___"
barcode(4)="|__|___||__"
barcode(5)="|___|__||__"
barcode(6)="|__||__|___"
barcode(7)="|__||___|__"
barcode(8)="|___||__|__"
barcode(9)="||__|__|___"
barcode(10)="||__|___|__" '*
barcode(11)="||___|__|__"
barcode(12)="|_||__|||__"
barcode(13)="|__||_|||__"
barcode(14)="|__||__|||_"
barcode(15)="|_|||__||__"
barcode(16)="|__|||_||__" '0
barcode(17)="|__|||__||_"
barcode(18)="||__|||__|_"
barcode(19)="||__|_|||__"
barcode(20)="||__|__|||_"
barcode(21)="||_|||__|__"
barcode(22)="||__|||_|__"
barcode(23)="|||_||_|||_"
barcode(24)="|||_|__||__"
barcode(25)="|||__|_||__" '9
barcode(26)="|||__|__||_"
barcode(27)="|||_||__|__"
barcode(28)="|||__||_|__"
barcode(29)="|||__||__|_"
barcode(30)="||_||_||___"
barcode(31)="||_||___||_"
barcode(32)="||___||_||_"
barcode(33)="|_|___||___" 'A
barcode(34)="|___|_||___"
barcode(35)="|___|___||_"
barcode(36)="|_||___|___"
barcode(37)="|___||_|___"
barcode(38)="|___||___|_"
barcode(39)="||_|___|___"
barcode(40)="||___|_|___"
barcode(41)="||___|___|_"
barcode(42)="|_||_|||___"
barcode(43)="|_||___|||_"
barcode(44)="|___||_|||_"
barcode(45)="|_|||_||___"
barcode(46)="|_|||___||_"
barcode(47)="|___|||_||_"
barcode(48)="|||_|||_||_"
barcode(49)="||_|___|||_"
barcode(50)="||___|_|||_"
barcode(51)="||_|||_|___"
barcode(52)="||_|||___|_"
barcode(53)="||_|||_|||_"
barcode(54)="|||_|_||___"
barcode(55)="|||_|___||_"
barcode(56)="|||___|_||_"
barcode(57)="|||_||_|___"
barcode(58)="|||_||___|_" 'Z
barcode(59)="|||___||_|_"
barcode(60)="|||_||||_|_"
barcode(61)="||__|____|_"
barcode(62)="||||___|_|_"
barcode(63)="|_|__||____"
barcode(64)="|_|____||__"
barcode(65)="|__|_||____" 'a
barcode(66)="|__|____||_"
barcode(67)="|____|_||__"
barcode(68)="|____|__||_"
barcode(69)="|_||__|____"
barcode(70)="|_||____|__"
barcode(71)="|__||_|____"
barcode(72)="|__||____|_"
barcode(73)="|____||_|__"
barcode(74)="|____||__|_"
barcode(75)="||____|__|_"
barcode(76)="||__|_|____"
barcode(77)="||||_|||_|_"
barcode(78)="||____|_|__"
barcode(79)="|___||||_|_"
barcode(80)="|_|__||||__"
barcode(81)="|__|_||||__"
barcode(82)="|__|__||||_"
barcode(83)="|_||||__|__"
barcode(84)="|__||||_|__"
barcode(85)="|__||||__|_"
barcode(86)="||||_|__|__"
barcode(87)="||||__|_|__"
barcode(88)="||||__|__|_"
barcode(89)="||_||_||||_"
barcode(90)="||_||||_||_" 'z
barcode(91)="||||_||_||_"
barcode(92)="|_|_||||___"
barcode(93)="|_|___||||_"
barcode(94)="|___|_||||_"
barcode(95)="|_||||_|___"
barcode(96)="|_||||___|_"
barcode(97)="||||_|_|___"
barcode(98)="||||_|___|_"
barcode(99)="|_|||_||||_"
barcode(100)="|_||||_|||_"
barcode(101)="|||_|_||||_"
barcode(102)="||||_|_|||_"
barcode(103)="||_|____|__"
barcode(104)="||_|__|____"
barcode(105)="||_|__|||__"
barcode(106)="||___|||_|_"Dim numid(9)
numid(0)=16
numid(1)=17
numid(2)=18
numid(3)=19
numid(4)=20
numid(5)=21
numid(6)=22
numid(7)=23
numid(8)=24
numid(9)=25'----------------------------------------------------------------------------
Function hascode(odrid)
dim u
str=odrid
if trim(str)="" then 
str=""
exit function
end if
For i=1 to Len(odrid)
u=asc(mid(odrid,i,1))
if u>=48 and u<=57 then str=Replace(str,mid(odrid,i,1),barcode(u-32))
if u=32 then str=Replace(str,mid(odrid,i,1),barcode(u-32))
if u>=65 and u<=90 then str=Replace(str,mid(odrid,i,1),barcode(u-32))
Next
str="||_|____|__" & str & barcode(gethaxstr(odrid)) &"||___|||_|_||"
hascode=str
End Function 
'----------------------------------------------------------------------------
Function gethaxstr(odrid)
'odrid=1234567890
s=odrid
Dim t
Dim u
For i=1 To Len(s)
  u=Asc(Mid(s,i,1))        '0=48
  if u>=48 and u<=57 then t=t+(i*(u-32)) 't=t+(i*numid(Mid(s,i,1)))
  if u=0 then t=t+(i*(u-32))
  if u>=65 and u<=90 then t=t+(i*(u-32))
Next 
t=t+103
t=t Mod 103
gethaxstr=t      '
End Function 
'----------------------------------------------------------------------------
Function setcolor(odrstr,w)
response.write "<br>"
code_H=50
code_W=w
c = odrstr
c = replace(c,"_","<SPAN STYLE='BACKGROUND-COLOR:#FFFFFF;WIDTH:"&code_w&";HEIGHT:"&code_H&";'></SPAN>")
c = replace(c,"|","<SPAN STYLE='BACKGROUND-COLOR:#000000;WIDTH:"&code_w&";HEIGHT:"&code_H&";'></SPAN>")
setcolor = c
End Function 
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Keywords" content="HANLEI.ORG">
<META NAME="Author" CONTENT="HANLEI.ORG">
<title>Asp生成条码</title>
<style>
<!--
input        { font-size: 9pt; font-family: 宋体 }
-->
</style>
</head><body>
<div align="center">
   <center>
<form method="POST" action="?">
  <p><input type="text" name="T1" size="20" maxlength="20" value="<%=request("T1")%>"> <select size="1" name="D1">
    <option value="1"<%if request("D1")=1 then response.write " selected"%>>宽度1</option>
    <option value="2"<%if request("D1")=2 then response.write " selected"%>>宽度2</option>
    <option value="3"<%if request("D1")=3 then response.write " selected"%>>宽度3</option>
  </select> <input type="submit" value="生成条码" name="B1"></p>
</form>
   <table border="0" cellpadding="0" cellspacing="0" height="79">
     <tr>
       <td height="61" align="center"><%=setcolor(hascode(request("T1")),request("D1"))%></td>
     </tr>
   </table>
   </center>
</div>
</body>
</html>

解决方案 »

  1.   

    没看到此asp生成jpg啊
    好像是通过 SPAN STYLE='BACKGROUND-COLOR:#FFFFFF;WIDTH 拼凑出条码的显示效果
      

  2.   

    Function hascode(odrid)应该加上
    if u>=97 and u<=122 then str=Replace(str,mid(odrid,i,1),barcode(u-32))
    才能支持小写字母
      

  3.   

    这个是个ASP的例子,现在想转换成delphi所以很纠结,delphi不太会。不知道大家有什么好的方法,有的话可以QQ联系我,谢谢。QQ451347995
      

  4.   


    搜 delphi barcode 就行了
    比如这个: http://mydown.yesky.com/soft/27/27651.html