begin process at 2012 05 27 06:09:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CLASSE SYSTEM.DRAWING OU COMMENT DESSINER AVEC ASP.NET

CLASSE SYSTEM.DRAWING OU COMMENT DESSINER AVEC ASP.NET


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Source .NET ( DotNet ) Niveau :Débutant Date de création :29/04/2003 Date de mise à jour :29/04/2003 21:52:25 Vu :20 818

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Cette source sert d'exemple a la casse system.drawing qui et tres puissante et ce sert de GDI+, l'exemple qui est mis ici est tiré du site www.c2i.fr et aussi de l'aide du SDK qui est tres bien fait sur cette classe et que je vous conseille.
Cette source crée une image a partir de deux autres, Je rajoute une signature a la photo, pour que qd on me la pique il y ai tj mon adresse, la photo est ecrasé a cq fois que qqn demande la page.

Source

  • <%@ Page Language="VB" Debug="true"%>
  • <%@ import namespace="System.Drawing" %>
  • <script language="VB" runat="server">
  • Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
  • Dessineimage() ' creer ou ecrase le fichier photo_rendu.jpg
  • photo.ImageUrl = "photo_rendu.jpg" ' on associe la photo au controle
  • End Sub
  • Sub Dessineimage()
  • 'on charge une image avec l'image d'origine
  • Dim newImage As Drawing.Image = System.Drawing.Image.FromFile(server.MapPath("image3.jpg"))
  • 'on crée cette image
  • Dim mB As New Bitmap(newImage)
  • 'on crée le graphics
  • Dim g As Graphics = Graphics.FromImage(mB)
  • ' meilleur qualité possible du graphique
  • g.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
  • 'on charge une nouvelle image qui sera devant l'autre
  • Dim newImage2 As Drawing.Image = System.Drawing.Image.FromFile(server.MapPath("signature.png"))
  • 'on dessine l'image2 chargé ou l'on veut dans le graphique
  • ' voici la syntaxe minimale donné par le SDK
  • 'Overloads Public Sub DrawImage( _
  • ' ByVal image As Image, _
  • ' ByVal point As Point _
  • ')
  • g.DrawImage(newImage2,275,400)
  • 'on va faire un petit rectangle noir sur la photo
  • 'voici la syntaxe minimale donné par le SDK
  • 'Overloads Public Sub FillRectangle( _
  • ' ByVal pen As Pen, _
  • ' ByVal x As Integer, _
  • ' ByVal y As Integer, _
  • ' ByVal width As Integer, _
  • ' ByVal height As Integer _
  • ')
  • ' Create pen.
  • Dim blueBrush As New SolidBrush(Color.Blue)
  • g.FillRectangle(blueBrush,0,95,200,40)
  • 'on peut aussi ecrire
  • 'voici la syntaxe minimale donné par le SDK
  • 'Overloads Public Sub DrawString( _
  • ' ByVal s As String, _
  • ' ByVal font As Font, _
  • ' ByVal brush As Brush, _
  • ' ByVal point As PointF _
  • ')
  • dim drawBrush as new SolidBrush(Color.yellow)
  • Dim drawFont As New Font("Verdana", 16)
  • g.drawstring("www.monsite.fr.st",drawFont, drawBrush , 0,100)
  • 'on sauvegarde l'image au format jpeg mais il existe plein d'autre format
  • mB.Save(Server.MapPath("photo_rendu.jpg"), Imaging.ImageFormat.jpeg)
  • End Sub
  • </script>
  • <html><body>
  • <form runat=server>
  • <asp:image id="photo" runat="server" Height="450px" Width="600px" /><br>
  • </form>
  • </body></html>
<%@ Page Language="VB" Debug="true"%>
<%@ import namespace="System.Drawing" %>
<script language="VB" runat="server">

Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dessineimage()										' creer ou ecrase le fichier photo_rendu.jpg
photo.ImageUrl = "photo_rendu.jpg"					' on associe la photo au controle		
End Sub

Sub Dessineimage()

'on charge une image avec l'image d'origine
Dim newImage As Drawing.Image = System.Drawing.Image.FromFile(server.MapPath("image3.jpg"))

'on crée cette image
Dim mB As New Bitmap(newImage)

'on crée le graphics
Dim g As Graphics = Graphics.FromImage(mB)

' meilleur qualité possible du graphique
g.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality

'on charge une nouvelle image qui sera devant l'autre
Dim newImage2 As Drawing.Image = System.Drawing.Image.FromFile(server.MapPath("signature.png"))

'on dessine l'image2 chargé ou l'on veut dans le graphique
' voici la syntaxe minimale donné par le SDK 
	'Overloads Public Sub DrawImage( _
	'   ByVal image As Image, _
	'   ByVal point As Point _
	')
g.DrawImage(newImage2,275,400)

'on va faire un petit rectangle noir sur la photo
'voici la syntaxe minimale donné par le SDK 
	'Overloads Public Sub FillRectangle( _
	'   ByVal pen As Pen, _
	'   ByVal x As Integer, _
	'   ByVal y As Integer, _
	'   ByVal width As Integer, _
	'   ByVal height As Integer _
	')
' Create pen.
Dim blueBrush As New SolidBrush(Color.Blue)
g.FillRectangle(blueBrush,0,95,200,40)

'on peut aussi ecrire
'voici la syntaxe minimale donné par le SDK 
	'Overloads Public Sub DrawString( _
	'   ByVal s As String, _
	'   ByVal font As Font, _
	'   ByVal brush As Brush, _
	'   ByVal point As PointF _
	')
dim drawBrush  as new SolidBrush(Color.yellow)
Dim drawFont As New Font("Verdana", 16)
g.drawstring("www.monsite.fr.st",drawFont, drawBrush , 0,100)

'on sauvegarde l'image au format jpeg mais il existe plein d'autre format 
mB.Save(Server.MapPath("photo_rendu.jpg"), Imaging.ImageFormat.jpeg) 

End Sub

</script>
<html><body>
<form runat=server>
<asp:image id="photo" runat="server" Height="450px" Width="600px" /><br>
</form> 
</body></html>

 

 Conclusion

j'essaierai de completer la source pour que vous puissiez voir d'autres options, pour des question n'esitez pas ;)


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) UTILISATION DE LA MÉTHODE SORT ET SORTDIRECTION AVEC UN GRID...
Source .NET (Dotnet) RESPONSE.FILTER : MANIPULATION DU STREAM DE SORTIE ASP.NET
Source avec Zip Source .NET (Dotnet) OPTIMISATION DE LA SERIALISATION JSON POUR LES LIST<T>
Source avec Zip Source .NET (Dotnet) CRAWLABLELINKBUTTON : UPDATEPANEL ET RÉFÉRENCEMENT
Source .NET (Dotnet) POSTBACKCONTROL - COMMUNICATION CLIENT/SERVEUR AVEC LES UPDA...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CLASS CHARTS, HISTOGRAMCHART ET SECTORCHART par The Red Man
EXTRACTION D'INFORMATIONS IPTC D'UNE IMAGE par teenage
Source avec Zip Source avec une capture Source .NET (Dotnet) MANIPULATION D'IMAGES EN TEMPS RÉEL - RÉDUCTION COMPRESSION ... par badrbadr
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION D’AJAX ET D’UN WEBSERVICE POUR LA GÉNÉRATION D’I... par tikrimi
REDIMENSIONNER UNE IMAGE - ASPIMAGE par Keneyda

Commentaires et avis

Commentaire de Targos le 02/07/2003 11:57:03

Salut,

J'ai une erreur au moment du save : System.Runtime.InteropServices.ExternalException: Une erreur générique s'est produite dans GDI+.

Le chemin est bon, le nom du fichier aussi et g en plus les droits d'ecrire dans ce dossier.

G besoin de ton aide..

Merci d'avance

Commentaire de jesusonline le 02/07/2003 17:44:49 administrateur CS

Ca m'est deja arrivé, mais je me rappele plus trops comment j'ai fait pour la reparer, il me semble, que c'est le nom de dossier qui est invalide, essaye ca

mB.Save("photo_rendu.jpg", Imaging.ImageFormat.jpeg)

mais la je sais pas ou ca va t'enregistrer ta photo, dis le moi si ca marche, normalement oui, je regarderais se soir plus en detail si ca marche tj pas, en attendant tu peux regarder ce projet, http://www.aspfr.com/article.aspx?Val=553 il y a une partie de cette fonction dans photo_popup.aspx (il me semble)
@+

Commentaire de fabrice69 le 03/09/2003 02:20:27 administrateur CS

Très bonne idée que la superposition de plusieurs images, très courament utilisé notemment sur des sites commerciaux ou un achat est nécessaire afin d'obtenir une image clean et non 'signé' ou surtout dégradée.

Enfin l'utilisation de la class Drawing est un bonheur en soit et cette source n'est qu'un exemple de ce qu'on peut faire avec.

F___

Commentaire de ashi4 le 18/08/2004 13:56:32

salut,
le problème "Une erreur générique s'est produite dans GDI+."

pour ma part, ça provient toujours de droit d'accès au dossier insuffisant.

mauvais pour la sécurité de l'application, mais ouvre un partage sur ton dossier image. en général ça marche.

Ashi4

Commentaire de bsmoumene le 06/03/2006 17:08:24

salut,
ça marche bien mais y'a un problème c que lorsque j'insère la deuxième image, elle garde pas les même proportion càd ça change selon la taille de la première image .

samir...

Commentaire de Glumph le 08/08/2006 11:45:09

Excellent code!
Suite à ta remarque F_____, comment pourrait-on faire pour ne pas dédoubler chaque image? Parce qu'en admettant que j'aie 20 images que je veuille estampiller, ça me recréera bien 20 nouveaux fichiers non? Y'a-t-il une solution pour contourner le problème?
Merci

Commentaire de 3KyNoX le 17/06/2009 15:57:22

Salut,

je cherchais un possibilité d'insérer une image ou d'écrire du texte sur une autre image, on dirait que je viens de trouver ma solution par l'intermédiaire de GDI+

Par contre l'utilité de ces fonctions pour moi n'est pas d'ajouter un copyright sur une image afin d'enregistrer le tout mais faire de la personnalisation d'objets divers, comme un t-shirt par exemple.

Un site qui le fait mais malheureusement en php : http://www.shirtcity.com/shop/index.php

La seule fonction qui me manque est de changer la couleur des pixels d'un motif, es ce possible ?

Merci ;p

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales