ASP erfordert Komponenten zum Hinzufügen von Wasserzeichen zu Bildern, darunter die von den Chinesen entwickelte Software „aspjpeg“. Sie können diese beiden Softwareprogramme online suchen und herunterladen Chinesische Version und ist einfach zu bedienen SP erfordert Komponenten zum Hinzufügen von Wasserzeichen zu Bildern ... Zu den häufig verwendeten Softwareprogrammen gehören die von den Chinesen entwickelte Software „aspjpeg“. Sie können diese beiden Programme online suchen und herunterladen. Es wird schließlich empfohlen, „wsImage“ zu verwenden ist die chinesische Version. Einfach zu bedienen.
So registrieren Sie eine Komponente :
Geben Sie einfach regsvr32 [DLL-Pfad] an der Eingabeaufforderung ein.
Das Hinzufügen eines Wasserzeichens zu einem Bild bedeutet nichts anderes, als die Größe des Bildes zu ermitteln und dann das Wasserzeichen darauf zu schreiben. Der ASP-Code dient nur als Kontrollkomponente.
1: Holen Sie sich die Bildgröße (hier ausgedrückt in Pixelwerten. Freunde, die Photoshop lernen, sollten es verstehen)
Kopieren Sie den Codecode wie folgt:
<%
set obj=server.CreateObject(wsImage.Resize) ''Komponente aufrufen
obj.LoadSoucePic server.mappath(25.jpg) ''Öffnen Sie das Bild, der Bildname ist 25.jpg
obj.GetSourceInfo iWidth,iHeight
Response.write Bildbreite: & iWidth & <br> ''Bildbreite abrufen
Response.write Bildhöhe: & iHeight & <br> ''Ermitteln Sie die Bildhöhe
strError=obj.errorinfo
if strError<> then
Antwort.write obj.errorinfo
Ende wenn
obj.frei
Setze obj=nichts
%>
''------------------------------------------------ ----------------''
2: Textwasserzeichen hinzufügen
Kopieren Sie den Codecode wie folgt:
<%
set obj=server.CreateObject(wsImage.Resize)
obj.LoadSoucePic server.mappath(25.jpg) ''Bilder laden
obj.Quality=75
obj.TxtMarkFont = Chinese Caiyun''Legen Sie die Schriftart für den Wasserzeichentext fest
obj.TxtMarkBond = false ''Legen Sie die Dicke des Wasserzeichentextes fest
obj.MarkRotate = 0 ''Drehwinkel des Wasserzeichentextes
obj.TxtMarkHeight = 25 ''Höhe des Wasserzeichentextes
obj.AddTxtMark server.mappath(txtMark.jpg), bringt Sie außer Landes, &H00FF00&, 10, 70
strError=obj.errorinfo ''Generieren Sie den Bildnamen. Die Textfarbe entspricht der Position des Wasserzeichens im Bild
if strError<> then
Antwort.write obj.errorinfo
Ende wenn
obj.frei
Setze obj=nichts
%>
''------------------------------------------------ ----------------''
Drittens: Bildwasserzeichen hinzufügen
Kopieren Sie den Codecode wie folgt:
<%
set obj=server.CreateObject(wsImage.Resize)
obj.LoadSoucePic server.mappath(25.jpg) ''Bilder laden
obj.LoadImgMarkPic server.mappath(blend.bmp) ''Wasserzeichenbild laden
obj.Quality=75
obj.AddImgMark server.mappath(imgMark.jpg), 315, 220,&hFFFFFF, 70
strError=obj.errorinfo ''Generieren Sie den Bildnamen. Die Textfarbe entspricht der Position des Wasserzeichens im Bild
if strError<> then
Antwort.write obj.errorinfo
Ende wenn
obj.frei
Setze obj=nichts
%>
''------------------------------------------------ ----------------''
Tatsächlich ist das Hinzufügen von Wasserzeichen zu Bildern so einfach. Anschließend werde ich über die beiden anderen Hauptverwendungszwecke der WsImage.dll-Komponente sprechen.
Bilder zuschneiden und Miniaturansichten von Bildern erstellen.
Ich bin es immer noch gewohnt, Code zu verwenden und Kommentare hinzuzufügen:
Bild zuschneiden:
Kopieren Sie den Codecode wie folgt:
<%
set obj=server.CreateObject(wsImage.Resize)
obj.LoadSoucePic server.mappath(25.jpg)
obj.Quality=75
obj.cropImage server.mappath(25_crop.jpg),100,10,200,200 ''Zuschnittgröße definieren und Bildnamen generieren
strError=obj.errorinfo
if strError<> then
Antwort.write obj.errorinfo
Ende wenn
obj.frei
Setze obj=nichts
%>
Detaillierter Hinweis: Zum Zuschneiden des Bildes wird die CropImage-Methode von WsImage verwendet. Beim Generieren des Bildes sind 100 und 10 die Zuschneidepunkte in der oberen linken Ecke, also 100 Pixel von der linken Seite des Bildes 10 Pixel von oben. Die letzten beiden 200 stellen den Zuschnitt von Breitband und Höhe dar.
''------------------------------------------------ ----------------''
Bild-Miniaturansichten generieren :
Kopieren Sie den Codecode wie folgt:
<%
set obj=server.CreateObject(wsImage.Resize)
obj.LoadSoucePic server.mappath(25.jpg) ''Bilder laden
obj.Quality=75
obj.OutputSpic server.mappath(25_s.jpg),0.5,0.5,3 ''Definieren Sie den Namen der Miniaturansicht, also die Größe
strError=obj.errorinfo
if strError<> then
Antwort.write obj.errorinfo
Ende wenn
obj.frei
Setze obj=nichts
%>
Detaillierte Beschreibung:
Es gibt vier Exportmethoden zum Generieren von Miniaturansichten :
(1) obj.OutputSpic server.mappath(25_s.jpg),200,150,0
200 ist die Ausgabebreite und 150 ist die Ausgabehöhe. Dieses Ausgabeformat erzwingt die Ausgabebreite und -höhe, was zu einer Bildverformung führen kann.
(2) obj.OutputSpic server.mappath(25_s.jpg),200,0,1
Bei einer Ausgabebreite von 200 wird die Ausgabehöhe mit der Spalte skaliert.
(3) obj.OutputSpic server.mappath(25_s.jpg),0,200,2
Bei einer Ausgabehöhe von 200 wird die Ausgabebreite mit der Spalte skaliert.
(4) obj.OutputSpic server.mappath(25_s.jpg),0.5,0.5,3
Die ersten 0,5 bedeuten, dass das generierte Miniaturbild halb so breit ist wie das Originalbild, was bedeutet, dass die Breite reduziert wird.
Die zweite 0,5 bedeutet, dass das generierte Miniaturbild halb so hoch ist wie das Originalbild, was ein hohes Verkleinerungsverhältnis bedeutet.
Das gleiche Verkleinerungsverhältnis von Breite und Höhe bedeutet, dass das Originalbild verkleinert wird. Wenn das Skalierungsverhältnis von Breite und Höhe größer als 1 ist, wird das Originalbild vergrößert.
2------------------------------------------------- -----------------------------------------------
Kopieren Sie den Codecode wie folgt:
<%
Dimmen Sie Stream1, Stream2, Istart, Iend, Dateiname
iststart=1
vbEnter=Chr(13)&Chr(10)
function getvalue(fstr,foro,paths)'fstr ist der empfangene Name, foro Boolean false ist der Datei-Upload, true ist ein normales Feld, path ist der Speicherpfad der Upload-Datei
Wenn ja, dann
getvalue=
istart=instring(istart,fstr)
istart=istart+len(fstr)+5
iend=instring(istart,vbenter+--------------------------------)
wenn istart>5+len(fstr) dann
getvalue=substring(istart,iend-istart)
anders
getvalue=
Ende wenn
anders
istart=instring(istart,fstr)
istart=istart+len(fstr)+13
iend=instring(istart,vbenter)-1
Dateiname=Teilzeichenfolge(istart,iend-istart)
filename9=right(getfilename(filename),4)'Erhalte das ursprüngliche Dateisuffix
Dateiname8=Jahr(jetzt())&Monat(jetzt())&Tag(jetzt())&Stunde(jetzt())&Minute(jetzt())&Sekunde(jetzt())&int(9*10^3*rnd)+10 ^3'Erhalte einen zufälligen Dateinamen,
'Wenn Sie den Dateinamen verlängern möchten, ändern Sie bitte den Wert 100 in (100*rnd)
filename=replace(getfilename(filename),getfilename(filename),filename8) 'Ersetzen Sie den ursprünglichen Dateinamen und verwenden Sie die Ersetzungsfunktion
filename=filename&filename9 'Dateisuffix hinzufügen. Die Regel besteht darin, das ursprüngliche Dateisuffix zum generierten zufälligen Dateinamen hinzuzufügen
istart=instring(iend,vbenter+vbenter)+3
iend=instring(istart,vbenter+--------------------------------)
filestart=istart
Dateigröße=iend-istart-1
objstream.position=filestart
Setze sf = Server.CreateObject(ADODB.Stream)
sf.Mode=3
sf.Type=1
sf.Öffnen
objstream.copyto sf,FileSize
wenn Dateiname<> dann
Setze rf = Server.CreateObject(Scripting.FileSystemObject)
i=0
fn=Dateiname
while rf.FileExists(server.mappath(paths+fn))
fn=cstr(i)+Dateiname
i=i+1
wenden
Dateiname=fn
sf.SaveToFile server.mappath(paths+filename),2
''''''''''''''''''''''''''''''''''''''
DimJpeg
Setze Jpeg = Server.CreateObject(Persits.Jpeg)
Wenn -2147221005=Err dann
Response.write Es gibt keine solche Komponente, bitte installieren Sie sie! 'Überprüfen Sie, ob die AspJpeg-Komponente installiert ist
Response.End()
Ende wenn
Jpeg.Open (server.mappath(paths+filename)) 'Öffne das Bild
Wenn Fehlernummer, dann
Response.write konnte das Bild nicht öffnen, bitte überprüfen Sie den Pfad!
Response.End()
Ende wenn
Dim aa
aa=Jpeg.Binary 'Originaldaten aa zuweisen
'==========Textwasserzeichen hinzufügen==================
Jpeg.Canvas.Font.Color = &Hff0000 'Wasserzeichentextfarbe
Jpeg.Canvas.Font.Family = Schriftart „Arial“.
Jpeg.Canvas.Font.Bold = True 'Ob fett gedruckt werden soll
Jpeg.Canvas.Font.Size = 30' Schriftgröße
Jpeg.Canvas.Font.ShadowColor = &H000000 'Schattenfarbe
Jpeg.Canvas.Font.ShadowYOffset = 1
Jpeg.Canvas.Font.ShadowXOffset = 1
Jpeg.Canvas.Brush.Solid = True
Jpeg.Canvas.Font.Quality = 4 'Ausgabequalität
Jpeg.Canvas.PrintText Jpeg.OriginalWidth/2-100,Jpeg.OriginalHeight/2+20,www.my9933.com 'Position und Text des Wasserzeichens
bb=Jpeg.Binary 'Weisen Sie den Wert nach der Textwasserzeichenverarbeitung bb zu. Zu diesem Zeitpunkt hat das Textwasserzeichen keine Deckkraft
'============Texttransparenz anpassen================
Setze MyJpeg = Server.CreateObject(Persits.Jpeg)
MyJpeg.OpenBinary aa
Set Logo = Server.CreateObject(Persits.Jpeg)
Logo.OpenBinarybb
MyJpeg.DrawImage 0,0, Logo, 0.2 '0.3 ist Transparenz
cc=MyJpeg.Binary 'Weisen Sie das Endergebnis cc zu. Zu diesem Zeitpunkt kann auch das Zielbild generiert werden.
Response.BinaryWrite cc 'Binärdatei an den Browser ausgeben
MyJpeg.Save (server.mappath(pfade+dateiname))
setze aa=nichts
setbb=nichts
setcc=nichts
Jpeg.close
MyJpeg.Close
Logo.Schließen
''''''''''''''''''''''''''''''''''''''
Ende wenn
getvalue=Dateiname
Ende wenn
Endfunktion
Funktion subString(theStart,theLen)
dimi,c,stemp
objStream.Position=theStart-1
stem=
für i=1 bis theLen
Wenn objStream.EOS, dann Exit für
c=ascB(objStream.Read(1))
Wenn c > 127, dann
Wenn objStream.EOS, dann Exit für
stemp=stemp&Chr(AscW(ChrB(AscB(objStream.Read(1)))&ChrB(c)))
i=i+1
anders
stemp=stemp&Chr(c)
Ende wenn
Nächste
subString=stemp
Funktion beenden
Funktion inString(theStart,varStr)
dim i,j,bt,theLen,str
InString=0
Str=toByte(varStr)
theLen=LenB(Str)
für i=theStart zu objStream.Size-theLen
Wenn i>objstream.size, dann beenden Sie die Funktion
objstream.Position=i-1
wenn AscB(objstream.Read(1))=AscB(midB(Str,1)) dann
InString=i
für j=2 zu theLen
wenn objstream.EOS dann
inString=0
Ausgang für
Ende wenn
if AscB(objstream.Read(1))<>AscB(MidB(Str,j,1)) then
InString=0
Ausgang für
Ende wenn
nächste
Wenn InString<>0, dann Exit-Funktion
Ende wenn
nächste
Funktion beenden
Private Funktion GetFileName(FullPath)
Wenn FullPath <> dann
GetFileName = mid(FullPath,InStrRev(FullPath, /)+1)
Anders
GetFileName =
Ende wenn
Funktion beenden
Funktion toByte(Str)
dim i,iCode,c,iLow,iHigh
toByte=
Für i=1 bis Len(Str)
c=mid(Str,i,1)
iCode =Asc(c)
Wenn iCode<0, dann ist iCode = iCode + 65535
Wenn iCode>255, dann
iLow = Left(Hex(Asc(c)),2)
iHigh =Right(Hex(Asc(c)),2)
toByte = toByte & chrB(&H&iLow) & chrB(&H&iHigh)
Anders
toByte = toByte & chrB(AscB(c))
Ende wenn
Nächste
Funktion beenden
%>
3------------------------------------------------- -----------------------------------------------
Verwenden Sie die ASP-Komponente Persits.Jpeg, um Bildern Wasserzeichen hinzuzufügen und Miniaturansichten zu erstellen
Kopieren Sie den Codecode wie folgt:
<%
Dateiname=1.jpg
Setze Jpeg = Server.CreateObject(Persits.Jpeg)
' Holen Sie sich den Quellbildpfad
Pfad = Server.MapPath(Dateiname)
'Öffnen Sie das Quellbild
'response.write(Pfad)
Jpeg.Pfad öffnen
„Legen Sie die Details zum Generieren von Miniaturansichten fest. Es gibt viele Einstellungsmethoden. Die folgende Methode besteht darin, zuerst das Seitenverhältnis zu bestimmen und es dann proportional zu skalieren.
Wenn Jpeg.OriginalWidth / Jpeg.OriginalHeight > 1 dann
Jpeg.Width = 98
Jpeg.Height = int((98/Jpeg.OriginalWidth)*Jpeg.OriginalHeight)
elseif Jpeg.OriginalWidth / Jpeg.OriginalHeight < 1 dann
Jpeg.Width = 98
Jpeg.Height= int((98/Jpeg.OriginalWidth)*Jpeg.Height)
Ende wenn
'Schärfungseffekt einstellen
Jpeg.Sharpen 1, 130
' Miniaturansichten zum angegebenen Pfad generieren
Response.Write Server.MapPath(.)
Jpeg.Save Server.MapPath(.)&/small/&filename
'response.write Dateiname1
'response.write Server.MapPath(uploadpic/small)&/&filename1
' Achten Sie auf diese beiden Sitzungen
'Session(PPP0)=GP_curPath&FileName
'Session(PPP1)=GP_curPath&small&FileName
Stellen Sie Jpeg = Nichts ein
„Miniaturbild automatisch generieren und beenden.“
„Beginnen Sie damit, große Bilder mit Wasserzeichen zu versehen.“
'Erstellen Sie eine Instanz
Setze Jpeg = Server.CreateObject(Persits.Jpeg)
'Öffnen Sie das Zielbild
Pfad = Server.MapPath(Dateiname)
'Öffnen Sie das Quellbild
Jpeg.Pfad öffnen
'Textwasserzeichen hinzufügen
Jpeg.Canvas.Font.Color = &HFF0000' Rot
Jpeg.Canvas.Font.Family = Song-Dynastie
Jpeg.Canvas.Font.Bold = True
Jpeg.Canvas.Print 10, 10, Honglan-Technologie
'Datei speichern
Jpeg.Save Server.MapPath(.)&/small/w_&filename
'Registrierung des Objekts aufheben
Stellen Sie Jpeg = Nichts ein
„Das Wasserzeichen für große Bilder endet.“
%>
4---------------------------------------------------------------- -----------------------------------------------
Verwenden Sie ASPJPEG, um ASP-Implementierungscode mit Wasserzeichen zu erstellen
Kopieren Sie den Codecode wie folgt:
<%
Klasse qswhImg
dimmen usw
Private Sub Class_Initialize
set aso=CreateObject(Adodb.Stream)
aso.Mode=3
aso.Type=1
usw.Öffnen
Sub beenden
Private Unterklasse_Terminate
setze aso=nichts
Sub beenden
Private Funktion Bin2Str(Bin)
Dim I, Str
Für I=1 bis LenB(Bin)
clow=MidB(Bin,I,1)
wenn ASCB(clow)<128 dann
Str = Str & Chr(ASCB(clow))
anders
I=I+1
wenn I <= LenB(Bin) dann Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
Ende wenn
Nächste
Bin2Str = Str
Funktion beenden
Private Funktion Num2Str(num,base,lens)
'qiushuiwuhen (2002-8-12)
schwach ret
ret =
while(num>=base)
ret = (num mod base) & ret
num = (num - num mod base)/base
wenden
Num2Str = right(string(lens,0) & num & ret,lens)
Funktion beenden
Private Funktion Str2Num(str,base)
'qiushuiwuhen (2002-8-12)
schwach ret
ret = 0
für i=1 bis len(str)
ret = ret *base + cint(mid(str,i,1))
nächste
Str2Num=ret
Funktion beenden
Private Funktion BinVal(bin)
'qiushuiwuhen (2002-8-12)
schwach ret
ret = 0
für i = lenb(bin) zu 1 Schritt -1
ret = ret *256 + ascb(midb(bin,i,1))
nächste
BinVal=ret
Funktion beenden
Private Funktion BinVal2(bin)
'qiushuiwuhen (2002-8-12)
schwach ret
ret = 0
für i = 1 bis lenb(bin)
ret = ret *256 + ascb(midb(bin,i,1))
nächste
BinVal2=ret
Funktion beenden
Funktion getImageSize(filespec)
'qiushuiwuhen (2002-9-3)
dim ret(3)
aso.LoadFromFile(filespec)
bFlag=aso.read(3)
select case hex(binVal(bFlag))
Fall 4E5089:
aso.read(15)
ret(0)=PNG
ret(1)=BinVal2(aso.read(2))
aso.read(2)
ret(2)=BinVal2(aso.read(2))
Fall 464947:
aso.read(3)
ret(0)=GIF
ret(1)=BinVal(aso.read(2))
ret(2)=BinVal(aso.read(2))
Fall 535746:
aso.read(5)
binData=aso.Read(1)
sConv=Num2Str(ascb(binData),2,8)
nBits=Str2Num(left(sConv,5),2)
sConv=mid(sConv,6)
while(len(sConv)<nBits*4)
binData=aso.Read(1)
sConv=sConv&Num2Str(ascb(binData),2,8)
wenden
ret(0)=SWF
ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)
ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)
Gehäuse FFD8FF:
Tun
do: p1=binVal(aso.Read(1)): Schleife während p1=255 und nicht aso.EOS
Wenn p1>191 und p1<196, dann beenden, sonst tun aso.read(binval2(aso.Read(2))-2)
do:p1=binVal(aso.Read(1)):loop while p1<255 and not aso.EOS
Schleife während true
aso.Read(3)
ret(0)=JPG
ret(2)=binval2(aso.Read(2))
ret(1)=binval2(aso.Read(2))
Fall anders:
wenn left(Bin2Str(bFlag),2)=BM dann
aso.Lesen(15)
ret(0)=BMP
ret(1)=binval(aso.Read(4))
ret(2)=binval(aso.Read(4))
anders
ret(0)=
Ende wenn
Ende auswählen
ret(3)=width= & ret(1) & height= & ret(2) &
getimagesize=ret
Funktion beenden
Unterricht beenden
SavefullPath=326151745wldn.jpg 'Bildpfadzuweisung oder Bildpfadvariablenzuweisung
'Ermitteln Sie die Breite des Bildes
Setze qswh = neues qswhImg
arr = qswh.getImageSize(Server.Mappath(SavefullPath))
Setze qswh = Nichts
str_ImgWidth=arr(1)
str_ImgHeight=arr(2)
Wenn Int(str_ImgWidth) > 600 Dann
str_ImgWidth = 600
Anders
str_ImgWidth = str_ImgWidth
Ende wenn
'Wasserzeichen hinzufügen
Wenn Int(str_ImgWidth) > 300 und Int(str_ImgHeight) > 100, dann
LocalFile=Server.MapPath(SavefullPath)
TargetFile=Server.MapPath(SavefullPath)
DimJpeg
Setze Jpeg = Server.CreateObject(Persits.Jpeg)
Wenn -2147221005=Err dann
Response.Write(<script language='javascript'>alert('Diese Komponente existiert nicht, bitte installieren Sie sie!'); History.back();</script>) 'Überprüfen Sie, ob die AspJpeg-Komponente installiert ist
Response.End()
Ende wenn
Jpeg.Open (LocalFile) 'Öffne das Bild
Wenn Fehlernummer, dann
Response.Write(<script language='javascript'>alert('Das Bild konnte nicht geöffnet werden, bitte überprüfen Sie den Pfad!'); History.back();</script>)
Response.End()
Ende wenn
Dim aa
aa=Jpeg.Binary 'Originaldaten aa zuweisen
'==========Textwasserzeichen hinzufügen==================
Jpeg.Canvas.Font.Color = &Hfffffff 'Textfarbe des Wasserzeichens
Jpeg.Canvas.Font.Family = Arial 'Schriftart
Jpeg.Canvas.Font.Bold = True 'Ob fett gedruckt werden soll
Jpeg.Canvas.Font.Size = 20 'Schriftgröße
Jpeg.Canvas.Font.ShadowColor = &H000000 'Schattenfarbe
Jpeg.Canvas.Font.ShadowYOffset = 1
Jpeg.Canvas.Font.ShadowXOffset = 1
Jpeg.Canvas.Brush.Solid = True
Jpeg.Canvas.Font.Quality = 10 ' 'Ausgabequalität
Jpeg.Canvas.PrintText Jpeg.OriginalWidth/2-40, Jpeg.OriginalHeight/2-10, Position und Text des Wasserzeichens für die Website-Konstruktion
bb=Jpeg.Binary 'Weisen Sie den Wert nach der Textwasserzeichenverarbeitung bb zu. Zu diesem Zeitpunkt hat das Textwasserzeichen keine Deckkraft
'============Texttransparenz anpassen================
Setze MyJpeg = Server.CreateObject(Persits.Jpeg)
MyJpeg.OpenBinary aa
Set Logo = Server.CreateObject(Persits.Jpeg)
Logo.OpenBinarybb
MyJpeg.DrawImage 0,0, Logo, 0.5 '0.3 ist Transparenz
cc=MyJpeg.Binary 'Weisen Sie das Endergebnis cc zu. Zu diesem Zeitpunkt kann auch das Zielbild generiert werden.
Response.BinaryWrite cc 'Binärdatei an den Browser ausgeben
MyJpeg.Save (TargetFile)
setze aa = nichts
setbb=nichts
setcc=nichts
Jpeg.Schließen
MyJpeg.Close
Logo.Schließen
Ende wenn
'Wasserzeichen hinzufügen
%>