Empfohlen: Hinzufügen oder Subtrahieren von Daten in der DATEADD -Funktion in ASP In diesem Artikel wird die Verwendung von Datumseradung oder Subtraktion in der DATEADD -Funktion in ASP eingeführt. Diejenigen, die wissen müssen, können sich darauf beziehen.
1. Fügen Sie dem Bild Wasserzeichen hinzuKopieren Sie den Code wie folgt: www.cuoxin.com
<%
Dim JPEG '' '// Variablen deklarieren
Setzen Sie jpeg = server.createObject ("perssites.jpeg") '' '' // Aufrufkomponente
Jpeg.open server.mappath ("aaa.jpg") '' '' // Quellbildsposition
Jpeg.canvas.font.color = & h000000 '' '' // Wasserzeichen Schriftfarbe
Jpeg.canvas.font.family = "安安" '' '' // Watermark -Schriftart
Jpeg.canvas.font.size = 14 '' '' // Watermark -Schriftgröße
Jpeg.canvas.font.bold = false '' '' // Ist es fett? Verwendung: wahr
Jpeg.canvas.font.bkmode = & hfffff '' '' // Schrifthintergrundfarbe
Jpeg.canvas.print 10, 10, "ungeschlagenes Naughty Studio" '' '// Watermark Text, zwei Nummern 10 sind die XY -Koordinaten des Wasserzeichens
Jpeg.save server.mappath ("aaa_05.jpg") '' '' // Erstellen Sie ein neues Bild mit einem Wasserzeichen und sparen Sie den Standort
Legen Sie JPEG = Nothing '' '// Die Komponente anmelden und die Ressource freigeben
Response.write "<img src = aaa_05.jpg>" '' '' // das Bild zeigen, nachdem das Wasserzeichen auf dieser Seite erzeugt wurde
%>
2. Erzeugen Sie Miniaturansichten
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Dim JPEG '' '// Variablen deklarieren
Setzen Sie jpeg = server.createObject ("perssites.jpeg") '' '' // Aufrufkomponente
Jpeg.open server.mappath ("aaa.jpg") '' '' // Originalbildsposition
Jpeg.width = jpeg.originalwidth/4 '' '' // Angenommen, die Breite des Bildes ist ein Viertel des Originalbildes
Jpeg.height = jpeg.originalHeight/4 '' '' // Angenommen, die Bildhöhe ist ein Viertel des Originalbildes
Jpeg.sharpen 1, 130 '' '' // Setzen Sie den Schärfeneffekt
Jpeg.save server.mappath ("aaa_small.jpg") '' '' // Generate Thumbnail -Speicherort und Name generieren
Legen Sie JPEG = Nothing '' '// Die Komponente anmelden und die Ressource freigeben
Response.write "<img src = aaa_small.jpg>" '' '' // das generierte Miniaturbild auf dieser Seite anzeigen
%>
Einführung in erweiterte Nutzungsmethoden von ASPJPEG -Komponenten
ASPJPEG ist eine sehr leistungsstarke Bildverarbeitungskomponente in reiner englischer Version. Es gab jedoch freie Versionen und geknackte Versionen, aber es gibt nicht viele Artikel, die ihnen detaillierte und detaillierte Einführungen bieten. Auch wenn es vorhanden ist, beinhalten sie nur Vorschänder und Bildwasserzeichen. Vielleicht liegt es an reinem Englisch.
Hier werde ich über die fortgeschrittene Verwendung von ASPJPEG für diese Themen sprechen. Zu den Technologien hier gehören hauptsächlich:
Bild Vorschaubild
Bild Wasserzeichen
Sicherheitscode -Technologie
Bildabschneiden
Bild verschmelzen
Datenbankunterstützung
Mehr selten verwendete Methoden
und einige verwandte praktische Technologien
Der einzige Mangelpunkt von ASPJPEG ist, dass die Ausgangsmethode relativ Single ist. Hier sprechen wir hauptsächlich über diese Ausgabemethode, die das Bild speichert und es dann nennt. Außerdem bin ich relativ faul, daher werden einige Codes im Originaldokument immer noch zitiert, und ich werde erklären, was ich nicht verstehe!
Kameraden, die VB oder .NET studiert haben, werden es definitiv auf einen Blick verstehen. Der Pinsel kommt. hehe.
1. Bild Vorschaubild
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Setzen Sie jpeg = server.createObject ("Perssites.jpeg") Aufrufkomponente
Path = server.mappath ("bilder") & "/clock.jpg" Ausstehender Bildpfad
Jpeg.open Path Open Bild
Höhe und Breite sind 1/2 des Originalbildes
Jpeg.width = jpeg.originalwidth / 2
Jpeg.height = jpeg.originalheight / 2
Speichern Sie das Bild
Jpeg.save server.mappath ("bilder") & "/clock_small.jpg"
%>
<Img Src = "Bilder/clock_small.jpg"> Verarbeitete Bilder anzeigen
2. Bild Wasserzeichen
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Setzen Sie jpeg = server.createObject ("perssites.jpeg")
Jpeg.open server.mappath ("bilder/dodge_viper.jpg")
Beginnen Sie mit dem Schreiben
Jpeg.canvas.font.color = & h000000 '' '' weiße Farbe
Jpeg.canvas.font.family = "Courier New" Schriftart
Jpeg.canvas.font.bold = true, ob man verdicken soll
Jpeg.canvas.print 10, 10, "Copyright (C) Xyz, Inc."
Drucken Sie die Koordinate X Druckkoordinate Y -Zeichen zum Drucken
Das Folgende ist die Grenzverarbeitung des Bildes
Jpeg.canvas.pen.color = & h000000 '' 'schwarze Farbe
Jpeg.canvas.pen.width = 2 bürstenbreite
Jpeg.canvas.brush.solid = false ob fett
Jpeg.canvas.bar 1, 1, jpeg.width, jpeg.height
Start X Coordinate Start Y -Koordinaten -Eingangslänge Eingangshöhe
Jpeg.save server.mappath ("bilder/dodge_viper_framed.jpg") speichern
%>
1. Sicherheitscode
Das Prinzip des sicheren MA ähnelt dem Hinzufügen eines Wasserzeichens. Viele Freunde haben mich nach bestimmten Code -Techniken gefragt, also werde ich es hier rausschreiben, um es mit Ihnen zu teilen. Ich werde ihnen nicht von normalen Menschen erzählen. hehe.
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Funktionen, die Sicherheitscodes www.wuyouw.com generieren
Funktion make_randomize (max_len, w_n) max_len generiert Länge, W_N: 0 kann Buchstaben enthalten, 1: nur für Zahlen
randomisieren
für intCounter = 1 bis max_len
WhatNext = int ((1-0+1)*rnd+w_n)
Wenn wasNext = 0 dann
obere = 122
niedriger = 97
anders
obere = 57
niedriger = 48
Ende wenn
Strnewpass = Strnewpass & chrt (int ((oberer niedriger+1)*rnd)+unter)
nächste
make_randomize = strnewpass
Endfunktion
%>
Generieren Sie ein Bild des Sicherheitscode. Natürlich müssen Sie im Voraus ein Hintergrundbild vorbereiten
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%random_num = make_randomize (4,1) generiert einen 4-stelligen Sicherheitscode
Sitzung ("random_num") = random_num Warum heißt Sitzung? Es ist ohne Sitzungssicherheitscode völlig bedeutungslos. hehe
Setzen Sie jpeg = server.createObject ("Perssites.jpeg") Aufrufkomponente
Jpeg.open server.mappath ("Infos/random_pic/random_index.gif") das vorbereitete Bild öffnen
Jpeg.canvas.font.color = & h006699
Jpeg.canvas.font.family = "Arial Black"
Jpeg.canvas.font.bold = false
Jpeg.canvas.printtext 0, -2, random_num
jpeg.save server.mappath ("infos/random_pic/random_index.bmp") speichern
%>
<img src = "Infos/random_pic/random_index.bmp" align = "fsmiddle">
Mach es selbst. hehe.
4. Bildschnitt
Menschen, die Aspjpeg nicht wissen, haben immer gedacht, dass sie es nicht zum Schneiden verwenden können.
Es gibt tatsächlich eine solche Methode
Ernte x1, y1, x2, y2
Schneiden Sie die X-Koordinate der oberen linken Ecke des Rechtecks, die X-Koordinate der unteren rechten Ecke des Y-Koordinaten
Ich werde unten eine Demonstration geben
Setzen Sie jpeg = server.createObject ("perssites.jpeg")
jpeg.open server.mappath ("/pic/1.gif")
jpeg.width = 70
Jpeg.height = jpeg.originalHeight*70 / jpeg.originawidthth
JPEG.CROP 0,0,70,52 Start schneiden
jpeg.save server.mappath ("/temp_pic/small_1.gif") speichern
Wie wäre es damit, es ist sehr einfach
5. Bildabersion
Hier möchten wir das Logo -Bild zum Bild von Dodge_viper.jpg hinzufügen
In der Tat kann die Bildverarbeitung auch zum dynamischen Drucken von Wasserzeichen verwendet werden.
Kopieren Sie den Code wie folgt: www.cuoxin.com
Setzen Sie foto = server.createObject ("Perssites.jpeg")
Photopath = server.mappath ("bilder") & "/dodge_viper.jpg"
Foto.open Photopath
Setzen Sie Logo = Server.CreateObject ("Perssites.jpeg")
Logopath = server.mappath ("bilder") & "/clock.jpg"
Logo.open logopath
Logo.width = 70
Logo.height = logo.width * logo.originalheight / logo.originalwidthth
Foto.Drawimage 0, 0, Logo
Foto.SendBinary
Hier verwenden wir die Ausgabemethode von SendBinary. Natürlich können Sie zuerst die geänderte Dodge_viper.jpg speichern und dann eingeben. Ich persönlich mag es nicht, die SendBinary -Methode zu verwenden, und es ist einfach, Fehler zu machen, wenn die Internetgeschwindigkeit langsam ist. Nicht sehr gut mit Geschwindigkeit. hehe.
6. Datenbankunterstützung
Ich werde hier nicht viel sagen. Tatsächlich ist es die binäre Methode. Wie wir alle wissen, können Bilder nur als Binärdateien gespeichert werden, wenn sie in der Datenbank gespeichert werden. Ich bin faul, den Code zu schreiben.
7. Weitere Methoden
Canvas.line (links, oben, rechts, unten)
Zeichnen eine gerade Linie
Canvas.ellipse (links, oben, rechts, unten)
Zeichnen Sie eine Ellipse
Canvas.Circle (x, y, Radius)
Zeichne einen Kreis
Canvas.bar (links, oben, rechts, unten)
Zeichnen Sie ein Rechteck mit dem Code darauf
Canvas.font.shadowcolor
Textschattenfarbe
Canvas.font.ShadowXOffset AS Long
Schatten X -Koordinateneinstellung
Canvas.font.ShadowyOffset AS Long
Y Koordinateneinstellung
Canvas.font.bkMode als String
Texthintergrund
==========================================================
Heute werde ich Ihnen das Wissen über das Wissen über ASP erzählen, das den Bildern Wasserzeichen hinzufügt
ASP verlangt Komponenten, um Bildern Wasserzeichen hinzuzufügen ... Zu den häufig verwendeten gehören ASPJPEG und WSIMAGE, die von den Chinesen entwickelt wurden ... Der erstere ist 30 Tage lang kostenlos ... Letzteres ist völlig kostenlos ... natürlich müssen wir chinesische Produkte verwenden ... hehe ...
So registrieren Sie Komponenten :
Geben Sie "RegSVR32 [DLL Path]" an der Eingabeaufforderung ein
Das Hinzufügen eines Wasserzeichens zum Bild ist nichts anderes, als die Bildgröße zu erhalten und dann das Wasserzeichen darauf zu schreiben ... Der ASP -Code dient nur als Steuerkomponente. Verwenden Sie den Code, um alles zu erklären.
1: Erhalten Sie die Bildgröße (hier wird von Pixelwerten ausgedrückt. Freunde, die Photoshop studieren, sollten verstehen)
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Setzen Sie obj = server.createObject ("wsimage.resize") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.loadSoucepic Server.Mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.getSourceinfo iwidth, iHeight
Antwort.Write "Bildbreite:" & iwidth & "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
response.write "Bildhöhe:" & iHeight & "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
Strerror = obj.Errorinfo
Wenn Strerror <> "" dann
response.write obj.Erorinfo
Ende wenn
obj.free
Setzen Sie OBJ = nichts
%>
2: Textwasserzeichen hinzufügen
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Setzen Sie obj = server.createObject ("wsimage.Resize")
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.Quality = 75
obj.txtmarkfont = "chinesische Farbwolke" '' '' '' '' '' '' '' '' '' '' '' '' '' "'' '' '' '' '' '' '' '' '' ''
obj.txtmarkbond = false '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.markrotate = 0 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.txtmarkheight = 25 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
obj.addtxtmark server.mappath ("txtmark.jpg"), "Take You Out", & H00ff00 &, 10, 70
Strerror = obj.Erorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
Wenn Strerror <> "" dann
response.write obj.Erorinfo
Ende wenn
obj.free
Setzen Sie OBJ = nichts
%>
Drei: Bild Wasserzeichen hinzufügen
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Setzen Sie obj = server.createObject ("wsimage.Resize")
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.loadimgmarkpic server.mappath ("Blend.bmp") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
obj.Quality = 75
obj.addimgmark server.mappath ("imgmark.jpg"), 315, 220, & hfffff, 70
Strerror = obj.Erorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
Wenn Strerror <> "" dann
response.write obj.Erorinfo
Ende wenn
obj.free
Setzen Sie OBJ = nichts
%>
In der Tat ist das Hinzufügen eines Wasserzeichens zu einem Bild so einfach. Dann spreche ich von zwei anderen Hauptnutzungen der WSIMage.dll -Komponente. Einschließlich:
Treffen Sie das Bild und erzeugen Sie die Miniaturansicht des Bildes.
Da ich daran gewöhnt bin, werde ich dem Code Kommentare hinzufügen:
Kruppierte Bilder :
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Setzen Sie 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 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
Strerror = obj.Errorinfo
Wenn Strerror <> "" dann
response.write obj.Erorinfo
Ende wenn
obj.free
Setzen Sie OBJ = nichts
%>
Detaillierter Kommentar: Cropimage verwendet die Cropimage -Methode von WSIMAGE. Bei der Definition der Bilderzeugung sind 100 und 10 die Schnittpunkte in der oberen linken Ecke, dh 100 Pixel links vom Bild und 10 Pixel oben. Die letzten beiden 200s repräsentieren das geschnittene Breitband, die Höhe und Höhe.
Bildminiantien erzeugen:
Kopieren Sie den Code wie folgt: www.cuoxin.com
<%
Setzen Sie obj = server.createObject ("wsimage.Resize")
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.Quality = 75
obj.outputspic server.mappath ("25_s.jpg"), 0,5,0,5,3 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
Strerror = obj.Errorinfo
Wenn Strerror <> "" dann
response.write obj.Erorinfo
Ende wenn
obj.free
Setzen Sie OBJ = nichts
%>
Detaillierte Beschreibung:
Es gibt vier Möglichkeiten, Miniaturansichten zu exportieren :
(1) obj.outputSpic Server.MAppath ("25_s.jpg"), 200,150,0
200 ist die Ausgangsbreite und 150 ist die Ausgangshöhe. Diese Ausgangsform ist die Zwangsausgangsbreite und -höhe, die zu Bildverformung führen kann.
(2) obj.outputSpic Server.Mappath ("25_s.jpg"), 200,0,1
Mit 200 als Ausgangsbreite wird die Ausgangshöhe mit der Säule skaliert.
(3) obj.outputSpic Server.Mappath ("25_s.jpg"), 0,200,2
Mit 200 als Ausgangshöhe wird die Ausgangsbreite mit der Säule skaliert.
(4) obj.outputSpic Server.Mappath ("25_s.jpg"), 0,5,0,5,3
Die ersten 0,5 bedeutet, dass das erzeugte Miniaturbild die halbe Breite des Originalbildes ist, was das Verhältnis von Breitenreduzierung bedeutet.
Die zweite 0,5 bedeutet, dass das erzeugte Miniaturbild die Hälfte der Höhe des Originalbildes hat, was ein hohes Reduktionsverhältnis bedeutet.
Die konsistente Verringerung von Breite und Höhe bedeutet, dass das Originalbild skaliert wird. Wenn das Zoomverhältnis von Breite und Höhe größer als 1 ist, wird das Originalbild vergrößert.
Nachdruck von: http://hi.baidu.com/miracle521/blog/item/e3419133fdc00746ac4b5f25.html
2 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Laden Sie Bilder ASP.NET mit Wasserzeichen hoch (Text Wasserzeichen, Bild Wasserzeichen, Text + Bild Wasserzeichen).
Fügen Sie dem Bild Wasserzeichen hinzu (Text Wasserzeichen, Bild Wasserzeichen, Text + Bild Wasserzeichen).
Reproduktionsbild:
Abbildung 500) this.width = 500 "Grenze = 0 <<
Wasserzeichen 500) this.width = 500 "Grenze = 0 <<
Nach dem Hinzufügen eines Wasserzeichens zum Bild (beachten Sie die obere rechte Ecke + direkt unten)
500) this.width = 500 "Grenze = 0 <<
Code:Drawimg.cs
Kopieren Sie den Code wie folgt: www.cuoxin.com
mit System verwenden;
mit System.Drawing;
mit System.Drawing.imaging;
mit System.Drawing.Drawing2d;
öffentliche Klasse Drawimg
{
private String WorkingDirectory = String.Empty; //Weg
private String imaginame = string.empty; // das verarbeitete Bild
private String imagewater = String.Empty; // Wasserzeichenbild
private String fontstring = String.Empty; // Wasserzeichen Text
Enum adaNtype {none, WaterImage, Waterfont, Doubledo}; // Befehl enum
privates Dealtype -Dealtype;
öffentliches Drawimg ()
{}
Öffentliche String PublicworkingDirectory
{
erhalten
{
Return Working Directory;
}
Satz
{
WorkingDirectory = Wert;
}
}
Public String PublicImagename
{
erhalten
{
Return ImageName;
}
Satz
{
Bildname = Wert;
}
}
Öffentliche String Publicagewater
{
erhalten
{
Return Imagewater;
}
Setzen Sie // Wenn Sie ein Wasserzeichenbild festlegen, bedeutet dies, dass Sie den Image -Effekt des Wasserzeichens verwenden möchten.
{
ANTAGTETTIGE = ADALTYPE.WATERIMAGE;
Imagewater = Wert;
}
}
Public String PublicFontstring
{
erhalten
{
Return Fontstring;
}
SET // Wenn der Wassermark -Text festgelegt ist, bedeutet dies, dass der Textmark -Texteffekt erforderlich ist.
{
endeType = adaptype.waterfont;
Fontstring = Wert;
}
}
öffentliche void DealImage ()
{
IsDouble ();
Switch (DealType)
{
Case apperattype.waterfont: writeFont (); brechen;
Case appering.waterimage: writeimg (); brechen;
case adadertype.doubledo: writeFontandimg (); brechen;
}
}
private void isDouble ()
{
if (ImageWater+""! = "" && fontstring+""! = "")
{
achAdeType = adaptype.doubledo;
}
}
private void writefont ()
{
// Setzen Sie ein Arbeitsverzeichnis
// String WorkingDirectory = @"C:/Watermark_Src/Waterpic";
// Definieren Sie eine Textzeichenfolge, die als Urheberrechtsnachricht verwendet werden soll
// String Copyright = "Copyright? 2002 - AP Photo/David Zalubowski";
// Erstellen Sie ein Bildobjekt, das das Foto in das Wasserzeichen enthält
Bild imgphoto = image.fromFile (WorkingDirectory + ImagesName);
int PHWIDTH = IMGPHOTO.WIDTH;
int pHHEight = imGphoto.Height;
// Erstellen Sie eine Bitmap Die Größe des Originalfotos
Bitmap bmphoto = new Bitmap (PHWIDTH, PHHEILT, PIXFORMAT.FORMAT24BPPRGB);
bmphoto.setResolution (imgphoto.horizontalResolution, imgphoto.verticalResolution);
// Laden Sie die Bitmap in ein Grafikobjekt
Graphics grhoto = Graphics.fromimage (bmphoto);
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Schritt 1 - Copyright -Nachricht einfügen
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Legen Sie die Rendering -Qualität für dieses Grafikobjekt fest
GrPhoto.smoothingMode = SmoothingMode.antialias;
// Zeichnet das Foto -Bildobjekt in Originalgröße in das Grafikobjekt.
grhoto.drawimage (
Imgphoto, // Fotobildobjekt
Neues Rechteck (0, 0, Phwidth, Phheight), // Rechteckstruktur
0, // x-coordinate des Teils des Quellbildes zum Zeichnen.
0, // y-Koordinate des Teils des Quellbildes zum Zeichnen.
PHWIDTH, // Breite des Teils des zum Zeichnen des Quellenbildes.
PHHEIGHT, // Höhe des Teils des Quellbildes zum Zeichnen.
GraphicsUnit.pixel); // Maßeinheiten
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Um die Größe der Urheberrechtsnachricht zu maximieren, werden wir
// Mehrere Schriftgrößen testen, um die größtmögliche Bestimmung zu bestimmen
// Schriftart Wir können für die Breite des Fotos verwenden
// Definieren Sie eine Reihe von Punktgrößen, die Sie als möglich betrachten möchten
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int [] Größen = new int [] {16,14,12,10,8,6,4};
Font crfont = null;
Sizef crSize = new sizef ();
// Schleifen Sie durch die definierten Größen und überprüfen Sie die Länge der Urheberrechtszeichenfolge
// Wenn seine Länge in Pixel geringer ist, wählen Sie die Bildbreite diese Schriftgröße.
für (int i = 0; i <7; i ++)
{
// Setzen Sie ein Schriftobjekt auf Arial (i) pt, fett
// crfont = new Font ("Arial", Größen [i], fontStyle.bold);
crfont = new Font ("Arial", Größen [i], fontStyle.bold);
// Messen Sie die Urheberrechtszeichenfolge in dieser Schriftart
crSize = grhoto.measurestring (fontstring, crfont);
if ((ushort) crSize.width <(ushort) phwidth)
brechen;
}
// Da alle Fotos unterschiedliche Höhen haben, bestimmen Sie a
// Position 5% vom Boden des Bildes
int ypixlesFrombottom = (int) (phHeight *.05);
// Jetzt, da wir eine Punktgröße haben, verwenden Sie die Urheberrechts -Stringhöhe
// um einen y-koordinierten zu bestimmen, um die Reihe des Fotos zu zeichnen
float yposfrombottom = ((PhHEIGHT - ypixlesFrombottom) - (crSize.Height/2));
// Bestimmen Sie den X-Koordinaten, indem Sie das Zentrum der Breite des Bildes berechnen
float xcenterofimg = (PHWIDTH/2);
// Definieren Sie das Textlayout, indem Sie die Textausrichtung auf zentriert einstellen
StringFormat Strformat = new StringFormat ();
Strformat.Alignment = StringAnignment.Center;
// Definieren Sie eine Bürste, die halbtrasparent schwarz ist (Alpha auf 153)
SolidBrush Semitransbrush2 = neuer Festbrillen (Farbe.Fromargb (153, 0, 0, 0));
// Zeichnen Sie die Urheberrechtszeichenfolge
grhoto.drawstring (fontstring, // Textfolge
CRFONT, // Schriftart
Semitransbrush2, // Pinsel
Neue Punkt (XCenterofimg+1, yposfrombottom+1), // Position
Strformat);
// eine Bürste definieren, die halbtrasparentes weiß ist (Alpha auf 153)
Solidbrush Semitransbrush = neuer Festbrillen (Farbe.Fromargb (153, 255, 255, 255));
// Zeichnen Sie die Urheberrechtszeichenfolge ein zweites Mal, um einen Schatteneffekt zu erzeugen
// Stellen Sie sicher, dass Sie diesen Text 1 Pixel nach rechts und nach 1 Pixel verschieben
grhoto.drawstring (fontstring, // Textfolge
CRFONT, // Schriftart
Semitransbrush, // Pinsel
Neue Pointf (XCenterofimg, yposfrombottom), // Position
Strformat);
Imgphoto = bmphoto;
GrPhoto.DiSon ();
// neues Bild in Dateisystem speichern.
Imgphoto.save (WorkingDirectory + ImagesName + "_Finally.jpg", ImageFormat.jpeg);
Imgphoto.DiSonSe ();
// Textausrichtung
}
Share: ASP Chinese Stubled Problemlösung Unabhängig davon, welches Problem mit der Sprachstreuung besteht, ist ASP keine Ausnahme. In diesem Artikel wird die Methode eingeführt, um verstümmelten Code in ASP zu lösen. Freunde, die es brauchen, können sich darauf beziehen.