Recommandé: comment ajouter ou soustraire les dates dans la fonction DATAEADD dans ASP Cet article introduira l'utilisation de l'ajout de date ou de la soustraction dans la fonction DATAEADD dans ASP. Ceux qui ont besoin de savoir peuvent y faire référence.
1. Ajouter un filigrane à l'imageCopiez le code comme suit: www.cuoxin.com
<%
Dim jpeg '' '' '// Déclarer les variables
Définir jpeg = server.createObject ("persits.jpeg") '' '' '// Composant d'appel
Jpeg.open server.mappath ("aaa.jpg") '' '' // Emplacement de l'image source
Jpeg.canvas.font.color = & h000000 '' '' // Couleur de police de filigrane
Jpeg.canvas.font.family = "安安" '' '' // Font de filigrane
Jpeg.canvas.font.size = 14 '' '' // Taille de police de filigrane
Jpeg.canvas.font.bold = false '' '' // Est-ce audacieux? Utilisation: vrai
Jpeg.canvas.font.bkmode = & hfffff '' '' // couleur d'arrière-plan de police
Jpeg.canvas.print 10, 10, "Studio vilain invaincu" '' '' // Texte de filigrane, deux numéros 10 sont les coordonnées XY du filigrane
Jpeg.save server.mappath ("aaa_05.jpg") '' '' // générer une nouvelle image avec un filigrane et sauvegarder l'emplacement
Définissez jpeg = rien '' '' // Connectez le composant et libérez la ressource
Réponse.write "<img src = aaa_05.jpg>" '' '' // montre l'image après la génération du filigrane sur cette page
%>
2. Générer des miniatures
Copiez le code comme suit: www.cuoxin.com
<%
Dim jpeg '' '' '// Déclarer les variables
Définir jpeg = server.createObject ("persits.jpeg") '' '' '// Composant d'appel
Jpeg.open server.mappath ("aaa.jpg") '' '' // emplacement d'image d'origine
Jpeg.width = jpeg.originalwidth / 4 '' '' // Supposons que la largeur de l'image soit un quart de l'image originale
Jpeg.height = jpeg.originalheight / 4 '' '' // Supposons que la hauteur de l'image soit un quart de l'image d'origine
JPEG.Sharpen 1, 130 '' '' // Définissez l'effet d'accrochage
Jpeg.save server.mappath ("aaa_small.jpg") '' '' // générer l'emplacement et le nom des miniatures
Définissez jpeg = rien '' '' // Connectez le composant et libérez la ressource
Réponse.write "<img src = aaa_small.jpg>" '' '' // Affichez l'image de miniatures générée sur cette page
%>
Introduction aux méthodes d'utilisation avancées des composants Aspjpeg
Aspjpeg est un composant de traitement d'image très puissant, en version pure anglaise. Cependant, il y a eu des versions gratuites et des versions fissurées, mais il n'y a pas beaucoup d'articles qui leur fournissent des introductions détaillées et approfondies. Même s'il y en a, ils n'impliquent que des miniatures d'image et des filigranes d'image. C'est peut-être à cause de l'anglais pur.
Ici, je parlerai de l'utilisation avancée d'Aspjpeg pour ces problèmes. Les technologies ici incluent principalement:
Minimagne
Photo filigrane
Technologie du code de sécurité
Découpe d'images
Fusion d'images
Prise en charge de la base de données
Méthodes plus rarement utilisées
et certaines technologies pratiques connexes
Le seul point lacunier d'Aspjpeg est que la méthode de sortie est relativement simple. Ici, nous parlons principalement de cette méthode de sortie qui enregistre l'image, puis l'appelle. De plus, je suis relativement paresseux, donc certains codes sont toujours cités dans le document original, et je vais expliquer ce que je ne comprends pas!
Les camarades qui ont étudié VB ou .NET le comprendront certainement en un coup d'œil. Le pinceau vient. hehe.
1. Image miniature
Copiez le code comme suit: www.cuoxin.com
<%
Définir jpeg = server.createObject ("persits.jpeg") Composant d'appel
Path = server.mappath ("images") & "/clock.jpg" chemin d'image en attente
Jpeg.open path ouvrir une image
La hauteur et la largeur sont 1/2 de l'image originale
Jpeg.width = jpeg.originalwidth / 2
Jpeg.height = jpeg.originalheight / 2
Enregistrer l'image
Jpeg.save server.mappath ("images") & "/clock_small.jpg"
%>
<Img src = "images / horloge_small.jpg"> Afficher les images traitées
2. Picture filigrane
Copiez le code comme suit: www.cuoxin.com
<%
Définir jpeg = server.createObject ("Persits.jpeg")
Jpeg.open server.mappath ("images / dodge_viper.jpg")
Commencer à écrire
Jpeg.canvas.font.color = & h000000 '' '' Couleur blanche
Jpeg.canvas.font.family = "Courier New" Font
Jpeg.canvas.font.bold = true s'ils devraient épaissir
Jpeg.canvas.print 10, 10, "Copyright (c) XYZ, Inc."
Imprimer coordonnée x Imprimer coordonnées y caractères à imprimer
Ce qui suit est le traitement à la bordure de l'image
Jpeg.canvas.pen.color = & h000000 '' '' Couleur noire
Jpeg.canvas.pen.width = 2 largeur de pinceau
Jpeg.canvas.brush.solid = false s'il faut gras
Jpeg.canvas.bar 1, 1, jpeg.width, jpeg.height
Démarrer la coordonnée X Hauteur d'entrée de longueur de coordonnées de coordonnées
Jpeg.save server.mappath ("images / dodge_viper_framed.jpg")
%>
3. Code de sécurité
Le principe de la MA Safe est similaire à l'ajout d'un filigrane. De nombreux amis m'ont posé des questions sur des techniques de code spécifiques, donc je vais l'écrire ici pour le partager avec vous. Je ne leur parlerai pas des gens ordinaires. hehe.
Copiez le code comme suit: www.cuoxin.com
<%
Fonctions qui génèrent des codes de sécurité www.wuyouw.com
fonction make_randomize (max_len, w_n) max_len génère la longueur, w_n: 0 peut contenir des lettres, 1: seulement pour les chiffres
randomiser
pour intCounter = 1 à max_len
whatNext = int ((1-0 + 1) * rnd + w_n)
Si whatNext = 0 alors
supérieur = 122
inférieur = 97
autre
supérieur = 57
inférieur = 48
terminer si
strNewpass = strNewpass & chr (int ((supérieur-lower + 1) * rnd) + inférieur)
suivant
Make_randomize = strNewpass
fonction finale
%>
Générer une image du code de sécurité. Bien sûr, vous devez préparer une image d'arrière-plan à l'avance
Copiez le code comme suit: www.cuoxin.com
<% random_num = make_randomize (4,1) génère un code de sécurité à 4 chiffres
session ("random_num") = random_num Pourquoi la session est-elle appelée? Il est complètement dénué de sens sans code de sécurité de session. hehe
Définir jpeg = server.createObject ("persits.jpeg") Composant d'appel
Jpeg.open server.mappath ("infos / random_pic / random_index.gif") ouvrir l'image préparée
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")
%>
<img src = "infos / random_pic / random_index.bmp" align = "Absmiddle">
Faites-le vous-même. hehe.
4. Coupe d'images
Les gens qui ne connaissent pas Aspjpeg ont toujours pensé qu'ils ne pouvaient pas l'utiliser pour couper.
Il y a en fait une telle méthode
Crop x1, y1, x2, y2
Coupez la coordonnée X du coin supérieur gauche du rectangle, la coordonnée x du coin inférieur droit de la coordonnée y
Je vais faire une démonstration ci-dessous
Définir jpeg = server.createObject ("Persits.jpeg")
jpeg.open server.mappath ("/ pic / 1.gif")
JPEG.Width = 70
Jpeg.height = jpeg.originalheight * 70 / jpeg.originawidth
JPEG.CROP 0,0,70,52 Début de la coupe est en fait enlevé la partie inférieure de plus de 52 pixels
jpeg.save server.mappath ("/ temp_pic / small_1.gif")
Et ça, c'est très simple
5. Fusion d'images
Ici, nous voulons ajouter l'image du logo à l'image dodge_viper.jpg
En fait, la méthode de fusion d'images peut également être utilisée pour imprimer dynamiquement des filigranes.
Copiez le code comme suit: www.cuoxin.com
Set Photo = server.createObject ("Persits.jpeg")
Photopath = server.mappath ("images") & "/dodge_viper.jpg"
Photo.Open Photopath
Set logo = server.createObject ("persits.jpeg")
Logopath = server.mappath ("images") & "/clock.jpg"
Logo.Open Logopathe
Logo.Width = 70
Logo.height = logo.width * logo.originalheight / logo.originalwidth
Photo.Drawimage 0, 0, logo
Photo.Sendbinary
Ici, nous utilisons la méthode de sortie de Sendbinary. Bien sûr, vous pouvez également enregistrer d'abord le DODGE_viper.jpg modifié, puis l'entrer. Personnellement, je n'aime pas utiliser la méthode Sendbinary, et il est facile de faire des erreurs lorsque la vitesse Internet est lente. Pas très bon à vitesse. hehe.
6. Prise en charge de la base de données
Je ne dirai pas grand-chose ici. En fait, c'est la méthode binaire. Comme nous le savons tous, les images ne peuvent être stockées que sous forme de fichiers binaires lorsqu'ils sont stockés dans la base de données. Je suis donc paresseux d'écrire le code.
7. Plus de méthodes
Canvas.line (gauche, haut, droite, bas)
Tracer une ligne droite
Canvas.ellipse (gauche, haut, droit, bas)
Dessiner une ellipse
Canvas.Circle (x, y, rayon)
Dessiner un cercle
Canvas.bar (gauche, haut, droite, bas)
Dessinez un rectangle avec le code dessus
Canvas.font.shadowcolor
Couleur de l'ombre du texte
Canvas.font.shadowxoffset comme long
Réglage des coordonnées de l'ombre x
Canvas.font.shadowyoffset comme long
Réglage des coordonnées y
Canvas.font.bkmode en tant que chaîne
Contexte de texte
=================================================.
Aujourd'hui, je vais vous parler de la connaissance de l'ASP ajoutant des filigranes aux photos
ASP nécessite des composants pour ajouter des filigranes aux images ... Les couramment utilisées incluent Aspjpeg et Wsimage développées par les Chinois ... le premier est gratuit pendant 30 jours ... le second est complètement gratuit ... bien sûr, nous devons utiliser des produits chinois ... hehe ...
Comment enregistrer les composants :
Entrez "Regsvr32 [Path DLL]" à l'invite de commande
L'ajout d'un filigrane à l'image n'est rien de plus que d'obtenir la taille de l'image, puis d'écrire le filigrane dessus ... Le code ASP ne sert que de composant de contrôle. Utilisez le code pour tout expliquer.
1: Obtenez la taille de l'image (ici est exprimée par les valeurs de pixels. Les amis qui étudient Photoshop doivent comprendre)
Copiez le code comme suit: www.cuoxin.com
<%
set obj = server.createObject ("wsimage.resize") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Component d'appel
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' 'OUVERT l'image, le nom de l'image est 25.jpg
obj.getsourceinfo iwidth, iheight
Response.Write "Largeur d'image:" & iwidth & "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '.
Response.Write "Hauteur de l'image:" & Iheight & "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''.
Strorror = obj.errorinfo
Si Strerror <> "" alors
réponse.Write obj.errorinfo
terminer si
obj.
Définir OBJ = rien
%>
2: Ajouter un filigrane de texte
Copiez le code comme suit: www.cuoxin.com
<%
set obj = server.createObject ("wsimage.resize")
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '"' '' '' ''" '"'" '"'" '"" "" "" "" "" "" "" "" "" "" "" "" "" "un un" é é é ilin sera était »», soit », soit
obj.quality = 75
obj.txtmarkfont = "Chinese Color Cloud '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Détablissement de la police du texte du watermark
obj.txtmarkbond = false '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Définit l'épaisseur du texte de filigrane
obj.markrotate = 0 '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'L'angle de rotation du texte du filigrane
obj.txtmarkheight = 25 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' La hauteur du texte du filigrane
obj.addtxtmark server.mappath ("txtmark.jpg"), "Take You Out", & h00ff00 &, 10, 70
STRERROR = Obj.Errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Le nom de l'image est généré, et la couleur du texte est le filigrane dans la position de l'image
Si Strerror <> "" alors
réponse.Write obj.errorinfo
terminer si
obj.
Définir OBJ = rien
%>
Trois: Ajouter un filigrane d'image
Copiez le code comme suit: www.cuoxin.com
<%
set obj = server.createObject ("wsimage.resize")
obj.loadsoucepic server.mappath ("25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '"' '' '' ''" '"'" '"'" '"" "" "" "" "" "" "" "" "" "" "" "" "" "un un" é é é ilin sera était »», soit », soit
obj.loadimgmarkpic server.mappath ("Blend.bmp") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''.
obj.quality = 75
obj.addimgmark server.mappath ("imgmark.jpg"), 315, 220, & hfffff, 70
STRERROR = Obj.Errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Le nom de l'image est généré, et la couleur du texte est le filigrane dans la position de l'image
Si Strerror <> "" alors
réponse.Write obj.errorinfo
terminer si
obj.
Définir OBJ = rien
%>
En fait, l'ajout d'un filigrane à une image est aussi simple. Ensuite, je parle de deux autres utilisations principales du composant wsimage.dll. Y compris:
Cramez l'image et générez la vignette de l'image.
Comme j'y suis habitué, j'ajouterai des commentaires au code:
Images coupées :
Copiez le code comme suit: www.cuoxin.com
<%
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 '' '' '' '' '' '' '' '' '' '' '' Définir la taille du clip et générer le nom de l'image
Strorror = obj.errorinfo
Si Strerror <> "" alors
réponse.Write obj.errorinfo
terminer si
obj.
Définir OBJ = rien
%>
Commentaire détaillé: CropImage utilise la méthode CropImage de WSIMAGE. Lors de la définition de la génération d'images, 100 et 10 sont les points de coupe dans le coin supérieur gauche, c'est-à-dire à 100 pixels à gauche de l'image et à 10 pixels en haut. Les deux derniers 200 représentent le haut débit et la hauteur coupés.
Générer des miniatures d'image:
Copiez le code comme suit: www.cuoxin.com
<%
set 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 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '.
Strorror = obj.errorinfo
Si Strerror <> "" alors
réponse.Write obj.errorinfo
terminer si
obj.
Définir OBJ = rien
%>
Description détaillée:
Il existe quatre façons d'exporter des miniatures :
(1) obj.outputspic server.mappath ("25_s.jpg"), 200,150,0
200 est la largeur de sortie et 150 est la hauteur de sortie. Cette forme de sortie est la largeur et la hauteur de sortie forcées, ce qui peut entraîner une déformation de l'image.
(2) obj.outputspic server.mappath ("25_s.jpg"), 200,0,1
Avec 200 comme largeur de sortie, la hauteur de sortie sera mise à l'échelle avec la colonne.
(3) obj.outputspic server.mappath ("25_s.jpg"), 0,200,2
Avec 200 comme hauteur de sortie, la largeur de sortie sera mise à l'échelle avec la colonne.
(4) obj.outputspic server.mappath ("25_s.jpg"), 0,5,0.5,3
Le premier 0,5 signifie que la miniature générée est la moitié de la largeur de l'image d'origine, ce qui signifie le rapport de réduction de la largeur.
Le deuxième 0,5 signifie que la miniature générée est la moitié de la hauteur de l'image d'origine, ce qui signifie un rapport de réduction élevé.
La réduction cohérente de la largeur et de la hauteur signifie que l'image d'origine sera réduite. Si le rapport zoom de largeur et de hauteur est supérieur à 1, l'image d'origine sera agrandie.
Réimprimé de: http://hi.baidu.com/miracle521/blog/item/E3419133fdc00746ac4b5f25.html
2 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Télécharger des images asp.net avec des filigranes (filigrane de texte, filigrane d'image, texte + filigrane d'image)
Ajouter le filigrane à l'image (filigrane du texte, filigrane d'image, texte + filigrane d'image)
Image de reproduction:
Figure 500) this.width = 500 "Border = 0 <
Filigrane 500) cette largeur = 500 "bordure = 0 <
Après avoir ajouté un filigrane à l'image (notez le coin supérieur droit + directement en dessous)
500) this.width = 500 "Border = 0 <
Code:Drawimg.cs
Copiez le code comme suit: www.cuoxin.com
Utilisation du système;
Utilisation de System.Drawing;
Utilisation de System.Drawing.imaging;
Utilisation de System.Drawing.Drawing2d;
classe publique Drawimg
{
String privé WorkingDirectory = String.Empty; //Chemin
String privé ImageName = String.empty; // l'image traitée
String privé imagewater = string.empty; // Image de filigrane
String privé Fontstring = String.Empty; // Texte de filigrane
ENUM DEFACTYPE {Aucun, Waterimage, Waterfont, Doubledo}; // Commande enum
DealType privé de DealType;
public drawimg ()
{}
String public publicworkingdirectory
{
obtenir
{
retour workingDirectory;
}
ensemble
{
WorkingDirectory = valeur;
}
}
Public String publicMageName
{
obtenir
{
retour ImageName;
}
ensemble
{
ImageName = valeur;
}
}
Public String publicMagewater
{
obtenir
{
retour ImageWater;
}
Définissez // Si vous définissez une image de filigrane, cela signifie que vous souhaitez utiliser l'effet d'image de filigrane.
{
DealType = DealType.WatéImage;
ImageWater = valeur;
}
}
Public String PublicFontstring
{
obtenir
{
Retour Fontstring;
}
SET // Si le texte de filigrane est défini, cela signifie que l'effet de texte de filigrane est requis.
{
DealType = DealType.WaterFont;
FontString = valeur;
}
}
public void DealImage ()
{
Isdouble ();
Switch (DealType)
{
Case DealType.WaterFont: WriteFont (); casser;
Case DealType.WaTEMage: WriteImg (); casser;
Case DealType.Doubledo: WriteFontanDImg (); casser;
}
}
Isdouble vide privé ()
{
if (imagewater + ""! = "" && fontsstring + ""! = "")
{
DealType = DealType.doubledo;
}
}
private void writefont ()
{
// définir un répertoire fonctionnel
// String workingDirectory = @ "c: / watermark_src / waterpic";
// Définissez une chaîne de texte à utiliser comme message de copyright
// String Copyright = "Copyright? 2002 - AP Photo / David Zalubowski";
// Créer un objet d'image contenant la photographie au filigrane
Image imgphoto = image.fromfile (WorkingDirectory + ImageName);
int phwidth = imgphoto.width;
int phheight = imgphoto.height;
// Créer un bitmap de la taille de la photographie originale
Bitmap bmphoto = new bitmap (phwidth, phheight, pixelformat.format24bpprgb);
bmphoto.setResolution (imgphoto.horizontalresolution, imgphoto.verticalResolution);
// Chargez le bitmap dans un objet graphique
Graphiques grphoto = graphics.fromimage (bmphoto);
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Étape # 1 - Insérez le message du droit d'auteur
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// définir la qualité de rendu de cet objet graphique
grphoto.smoothingMode = lissagemode.antialias;
// dessine l'objet d'image photo à la taille d'origine de l'objet graphique.
Grphoto.Drawimage (
imgphoto, // objet d'image photo
Nouveau rectangle (0, 0, Phwidth, Phheight), // Structure rectangulaire
0, // coordonnée x de la partie de l'image source à dessiner.
0, // coordonnée y de la partie de l'image source à dessiner.
phwidth, // largeur de la partie de l'image source à dessiner.
Phheight, // Hauteur de la partie de l'image source à dessiner.
GraphicsUnit.Pixel); // unités de mesure
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Pour maximiser la taille du message du droit d'auteur, nous allons
// tester plusieurs tailles de police pour déterminer le plus grand possible
// police que nous pouvons utiliser pour la largeur de la photo
// définir un tableau de tailles de points que vous souhaitez considérer comme possible
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int [] tailles = new int [] {16,14,12,10,8,6,4};
FONT CRFONT = NULL;
Sizef crSize = new sizef ();
// Boucle à travers les tailles définies vérifiant la longueur de la chaîne de copyright
// Si sa longueur en pixels est inférieure, la largeur de l'image choisit cette taille de police.
pour (int i = 0; i <7; i ++)
{
// définit un objet de police sur Arial (i) pt, gras
// crfont = new Font ("Arial", tailles [i], fontstyle.bold);
CRFONT = NOUVEAU FONT ("Arial", tailles [i], Fontstyle.Bold);
// mesure la chaîne de copyright dans cette police
crSize = Grphoto.Measurestring (Fontstring, Crfont);
if ((ushort) crSize.width <(ushort) phwidth)
casser;
}
// Étant donné que toutes les photographies auront des hauteurs variables, déterminez un
// positionner 5% du bas de l'image
int ypixlesfrombottom = (int) (phheight * .05);
// Maintenant que nous avons une taille ponctuelle Utilisez la hauteur de la chaîne des droits d'auteur
// pour déterminer une coordonnée y pour dessiner la chaîne de la photographie
float yposfrombottom = ((phheight - ypixlesfrombottom) - (crSize.height / 2));
// déterminer sa coordonnée x en calculant le centre de la largeur de l'image
float xCenteroFimg = (phwidth / 2);
// Définissez la disposition du texte en définissant l'alignement du texte sur
StringFormat Strformat = new StringFormat ();
StrFormat.Alignment = stringAlignment.center;
// Définissez un pinceau qui est semi-trasparent noir (alpha réglé à 153)
Solidbrush SemitRansbrush2 = new SolidBrush (Color.fromargb (153, 0, 0, 0));
// dessine la chaîne du droit d'auteur
Grphoto.Drawstring (Fontstring, // chaîne de texte
Crfont, // police
SemitRansbrush2, // Brosse
Nouveau pointf (xcenterofimg + 1, yposfrombottom + 1), // position
Strformat);
// Définissez un pinceau qui est semi-trasparent blanc (alpha réglé à 153)
Solidbrush SemitRanSbrush = nouveau brush solide (couleur.fromargb (153, 255, 255, 255));
// dessine la chaîne de copyright une deuxième fois pour créer un effet d'ombre
// Assurez-vous de déplacer ce texte de 1 pixel à droite et en bas de 1 pixel
Grphoto.Drawstring (Fontstring, // chaîne de texte
Crfont, // police
semi-mélitransbrosse, // brosse
Nouveau pointf (xcenterofimg, yposfrombottom), // position
Strformat);
imgphoto = bmphoto;
Grphoto.dispose ();
// Enregistrer une nouvelle image dans le système de fichiers.
imgphoto.save (workingDirectory + ImageName + "_finally.jpg", imageFormat.jpeg);
imgphoto.dispose ();
// Alignement du texte
}
Partager: ASP chinois brouillé solution de problème Peu importe le problème brouillé de la langue, ASP ne fait pas exception. Cet article présentera la méthode pour résoudre le code brouillé en ASP. Les amis qui en ont besoin peuvent y faire référence.