begin process at 2010 07 31 05:08:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > ASP.NET - COMMENT CRÉER UNE IMAGE DE TAILLE PLUS RÉDUITE EN CONSERVANT LA QUALITÉ MAXIMUM

ASP.NET - COMMENT CRÉER UNE IMAGE DE TAILLE PLUS RÉDUITE EN CONSERVANT LA QUALITÉ MAXIMUM


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Source .NET ( DotNet ) Classé sous :proportion, image, picture, réduire, conserver Niveau :Débutant Date de création :04/05/2004 Vu :14 382

Auteur : fabrice69

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


 Description

A partir de l'idée de la source :
- http://www.aspfr.com/code.aspx?ID=9088

et de la classe proposée par Mário Sobral :
- http://www.aranhix.net/foruns/ShowPost.aspx?PostID =41

J'ai simplement créé une procédure qui génère une image d'une largeur fixée (avec la hauteur respectant le rapport original) en conservant la qualité maximale. Le but de ma fonction est de réduire la taille de l'image donc l'image de la nouvelle taille remplace l'ancienne.

Source

  • ' -----------------------------------------------------
  • Private Sub ResizeImage(ByVal CheminFichier As String, ByVal CheminFichierTemp As String, ByVal LargeurPrevue As Integer)
  • Dim LargeurMiniature As Integer = LargeurPrevue 'On fixe la hauteur de l'image
  • Dim HauteurMiniature As Integer = 0 'la Hauteur sera calculée
  • Dim BMPTemp As System.Drawing.Bitmap
  • Dim graphicTemp As System.Drawing.Graphics
  • File.Copy(CheminFichier, CheminFichierTemp, True)
  • File.Delete(CheminFichier)
  • Dim bmp As New System.Drawing.Bitmap(CheminFichierTemp)
  • HauteurMiniature = (bmp.Size.Height * LargeurMiniature / bmp.Size.Width)
  • BMPTemp = New System.Drawing.Bitmap(LargeurMiniature, HauteurMiniature)
  • graphicTemp = System.Drawing.Graphics.FromImage(BMPTemp)
  • graphicTemp.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver
  • graphicTemp.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
  • graphicTemp.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
  • graphicTemp.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
  • graphicTemp.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality
  • graphicTemp.DrawImage(bmp, 0, 0, LargeurMiniature, HauteurMiniature)
  • graphicTemp.Dispose()
  • BMPTemp.Save(CheminFichier, System.Drawing.Imaging.ImageFormat.Jpeg)
  • BMPTemp.Dispose()
  • bmp.Dispose()
  • File.Delete(CheminFichierTemp)
  • End Sub
  • ' -----------------------------------------------------
' -----------------------------------------------------
Private Sub ResizeImage(ByVal CheminFichier As String, ByVal CheminFichierTemp As String, ByVal LargeurPrevue As Integer)
 Dim LargeurMiniature As Integer = LargeurPrevue 'On fixe la hauteur de l'image
 Dim HauteurMiniature As Integer = 0 'la Hauteur sera calculée
 Dim BMPTemp As System.Drawing.Bitmap
 Dim graphicTemp As System.Drawing.Graphics

 File.Copy(CheminFichier, CheminFichierTemp, True)
 File.Delete(CheminFichier)

 Dim bmp As New System.Drawing.Bitmap(CheminFichierTemp)
 HauteurMiniature = (bmp.Size.Height * LargeurMiniature / bmp.Size.Width)

 BMPTemp = New System.Drawing.Bitmap(LargeurMiniature, HauteurMiniature)
 graphicTemp = System.Drawing.Graphics.FromImage(BMPTemp)

 graphicTemp.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver
 graphicTemp.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
 graphicTemp.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
 graphicTemp.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
 graphicTemp.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality

 graphicTemp.DrawImage(bmp, 0, 0, LargeurMiniature, HauteurMiniature)
 graphicTemp.Dispose()

 BMPTemp.Save(CheminFichier, System.Drawing.Imaging.ImageFormat.Jpeg)
 BMPTemp.Dispose()
 bmp.Dispose()
 File.Delete(CheminFichierTemp)

End Sub

' -----------------------------------------------------

 Conclusion

Bon Coding.

Romelard Fabrice (Alias F___)


 Sources du même auteur

Source .NET (Dotnet) SHAREPOINT 2007 - OBTENIR LA LISTE DES WEBPARTS DANS UNE PAG...
Source .NET (Dotnet) SHAREPOINT 2007 - OBTERNIR LA LISTE DES FEATURES D'UN SITE
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES COLLATIONS SHAREPOINT...
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES LANGUES INSTALLÉES DA...
Source .NET (Dotnet) C# - FONCTION TRÈS SIMPLE POUR ENVOYER UN MAIL VIA SMTP

 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

 Sources en rapport avec celle ci

Source avec une capture Source .NET (Dotnet) AJOUTER UNE IMAGE À UN BOUTON par PascalCmoa
Source avec Zip Source .NET (Dotnet) INSERER UNE PHOTO DANS UN CHAMP BLOB (IMAGE) DANS TABLE SQL ... par Myke
Source .NET (Dotnet) IMAGE : GARDER LA RESOLUTION SI LA TAILLE NE DEPASSE PAS LE ... par li9
GÉNÉRER UNE VIGNETTE À PARTIR D'UNE IMAGE JPEG/BMP, VIA L'OB... par fr64
Source avec Zip Source avec une capture Source .NET (Dotnet) COMBOBOXEX - COMBOBOX AVEC IMAGES - WEBCONTROL EN POUR ASP É... par aKheNathOn

Commentaires et avis

Commentaire de jesusonline le 04/05/2004 20:48:58 administrateur CS

oui pas mal
Cependant dans certains cas ce n'est pas la largeur qu'on fixe mais la hauteur.
Pour permettre de fixer la hauteur on pourrait alors faire un truc de ce style :

    Public Sub ResizeImage(ByVal CheminFichier As String, ByVal CheminFichierTemp As String, ByVal LargeurPrevue As Integer)
        If LargeurPrevue = 0 Then Throw New Exception("0 interdit !!!") : Exit Sub
        ResizeImage(CheminFichier, CheminFichierTemp, LargeurPrevue, 0)
    End Sub
    Public Sub ResizeImage(ByVal CheminFichier As String, ByVal CheminFichierTemp As String, ByVal LargeurPrevue As Integer, ByVal HauteurPrevue As Integer)
        If LargeurPrevue = 0 And HauteurPrevue = 0 Then Throw New Exception("0 interdit !!!") : Exit Sub

        Try
            Dim LargeurMiniature As Integer = LargeurPrevue 'On fixe la largeur de l'image
            Dim HauteurMiniature As Integer = HauteurPrevue 'On fixe la hauteur de l'image

            Dim BMPTemp As System.Drawing.Bitmap
            Dim graphicTemp As System.Drawing.Graphics

            File.Copy(CheminFichier, CheminFichierTemp, True)
            File.Delete(CheminFichier)

            Dim bmp As New System.Drawing.Bitmap(CheminFichierTemp)

            If HauteurMiniature = 0 Then
                HauteurMiniature = (bmp.Size.Height * LargeurMiniature / bmp.Size.Width)
            End If

            If LargeurMiniature = 0 Then
                LargeurMiniature = (bmp.Size.Width * HauteurMiniature / bmp.Size.Height)
            End If

            BMPTemp = New System.Drawing.Bitmap(LargeurMiniature, HauteurMiniature)
            graphicTemp = System.Drawing.Graphics.FromImage(BMPTemp)

            graphicTemp.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver
            graphicTemp.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
            graphicTemp.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
            graphicTemp.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
            graphicTemp.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality

            graphicTemp.DrawImage(bmp, 0, 0, LargeurMiniature, HauteurMiniature)
            graphicTemp.Dispose()

            BMPTemp.Save(CheminFichier, System.Drawing.Imaging.ImageFormat.Jpeg)
            BMPTemp.Dispose()
            bmp.Dispose()
            File.Delete(CheminFichierTemp)

        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try

    End Sub

Ce bout de code permet de garder la compatibilité avec celui ci dessus  et offre une hyper rapide gestion d'erreur :)

Commentaire de jcq le 09/07/2004 14:26:00

je trouve ça trés bon comme code, même si je n'ai pas tout compris(enfin je pense mais suis pas sur, je connais pas bien l'artecture .net).

Commentaire de tmcuh le 25/02/2005 11:59:46

humm interressant quand on doit mettre des petites images à agrandir, mais la quantité à downloader reste la meme non?

Commentaire de jesusonline le 25/02/2005 13:02:18 administrateur CS

Le but est justement de réduire la taille donc on telecharge vraiment des images de petites dimensions :)

Commentaire de ja001net le 01/08/2006 11:55:11

Bonjour,

J'utilise cette méthode pour créer des images réduites à partir d'images plus grandes ;)
Cependant, la qualité des images réduites n'est vraiment pas bonne et les images sont très "pixelisées". La résolution des images source est de 300 dpi alors que la résolution des images créées est de 96 dpi. Y'a t'il un moyen de spécifier la résolution de sortie pour les miniatures ?

Merci d'avance.

Commentaire de Nightcourrier le 28/02/2008 03:49:42 10/10


Wow !!!

Beau travail et Merci ! :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment creer un forum ?? [ par pekinio ] Ben voila, je ne parle pas du tout asp, pour l'instant, et donc je suis un pur nul.c pour cela que j aimerais que quelqun me dise comment creer des se Comment mettre comme image une page ASP ? [ par Clem ] Comment mettre comme image une page ASP ? (ex : <img src="compt.asp?id=512"> qui remplacera une image de compteur de visiteurs) Appel d'une function à partir d'une image [ par Wassup ] j'aimerais en cliquant sur une image appeller une function en passant un paramêtre, du style :ouvrepopavec(fichier.htm)J'ai essayé les événements1)&lt Appel d'une fonction à partir d'une image [ par Wassup ] j'aimerais en cliquant sur une image appeller une function en passant un paramêtre, du style :ouvrepopavec(fichier.htm)J'ai essayé les événements1)&lt Afficher une image d'une base de données sur une page web [ par jimini ] Est-ce que quelqu'un sait comment afficher une image provenant d'une table ? J'aimerais enregistrer une image par ligne dans ma base de données. Tout Pb avec image pour submit [ par franzioz ] (une réponse)Hello,J'ai un petit pb car je veux mettre une image a la place d'un bouton pour envoyer mes donnes d'un formulaire. Le probleme est que j java et jpg [ par Troyan ] Bonjour a tous voila je recherche un java qui permette. de prendre une image jpg de la retailler et de la sauver en jpg. genre faire une vignette de l Comment inserer une image ou un fichier dans une base Access ? [ par langju ] Bonjour à tous,voilà j'ecris pour un petit problème :Sur une page ASP j'ai crée un formulaire avec un FileUpload(champ de fichier.) ma balise form est conserver [ par fseb ] Bonjour, j'ai deux doubles listes, dont le contenu de la deuxieme est issue du choix de la premiere (bd access), mais lorqsuqe je recharge ma page, le image [ par pitxun ] j'aimerais savoir comment il faut faire pour connaître les dimensions d'une image.j'aimerais connaître la commande et sa syntaxe.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
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,373 sec (3)

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