Image PNG [Résolu]

cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 17 mai 2007 à 14:48 - Dernière réponse : chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention
- 18 mai 2007 à 18:40
bonjour
voila à l'aide d'un CommonDialog je vais chercher une image pour l'inserer
dans un pictureBox.
mais comment faire pour aller chercher des images au format "png".
merci
@ plus
petchy
Afficher la suite 

Votre réponse

48 réponses

Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 17 mai 2007 à 16:45
3
Merci
GDI+ est loin d'être compliqué, je dirais même qu'il est plus plus simple que le gdi32 car il a une approche objet que n'a pas gdi32, bien que s'utilisant de la même façon que gdi32.

Il permet surtout de faire bien plus de chose : anti-aliasing, gestion du canal alpha, gestion du format png, etc.

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Meilleure réponse
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 18 mai 2007 à 13:37
3
Merci
dans le code GDI+, il n' y a plus un chemein unique
Call GdipCreateBitmapFromFile("C:\IMAGES\01.png", lBitmap)
Mais
Call GdipCreateBitmapFromFile(xPath)
xPath sera remplacé automatiquement par le chemin que tu va récupérer

<hr />
© -En ce moment, c' est que pour Cannes...Mais moi aussi je tourne !   
(Rolling, mon poisson rouge)                                                      

Merci chaibat05 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de chaibat05
Meilleure réponse
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 18 mai 2007 à 16:27
3
Merci
Alors Petchy tu y arrives ?
voilà l'exemple complet avec un bouton, un commondiag, un picturebox indicé

Dim token As Long

Private Sub Form_Load()
    Dim GpInput   As GdiplusStartupInput
   
    GpInput.GdiplusVersion = 1
    If GdiplusStartup(token, GpInput) <> Ok Then
       MsgBox "Erreur chargement GDI+ !", vbCritical
       Unload Me
       End If
   
    Picture1(1).AutoRedraw = True

End Sub

Private Sub Command1_Click()
    CommonDialog1.Filter = "All Picture Files(*.bmp;*.jpg;*.gif;*.png)|*.bmp;*.jpg;*.gif;*.png|Bitmaps (*.bmp)|*.bmp|JPEG Images (*.jpg)|*.jpg|GIF Images (*.gif)|*.gif|PNG Images (*.png)|*.png"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.CancelError = True
    CommonDialog1.Flags = cdlOFNFileMustExist
    On Error GoTo Error
    CommonDialog1.ShowOpen
   
    Call Affiche(CommonDialog1.FileName)

    Exit Sub
Error:
    Beep
    If Err = 32755 Then Exit Sub
    MsgBox Err.Description & " (" & Err & ")", vbExclamation, "Open Erreur"
    Exit Sub
End Sub

Private Sub Affiche(xPath As String)
    Dim lBitmap   As Long
    Dim lGraphics As Long
    Dim xWidth    As Long
    Dim xHeight   As Long
   
    Picture1(1).Cls
    Call GdipCreateBitmapFromFile(xPath, lBitmap)
    Call GdipGetImageWidth(lBitmap, xWidth)
    Call GdipGetImageHeight(lBitmap, xHeight)
    Picture1(1).Width = Me.ScaleX(xWidth + 4, vbPixels, Me.ScaleMode)
    Picture1(1).Height = Me.ScaleY(xHeight + 4, vbPixels, Me.ScaleMode)
    Call GdipCreateFromHDC(Picture1(1).hDC, lGraphics)
    Call GdipDrawImageI(lGraphics, lBitmap, 0, 0)
    Call GdipDisposeImage(lBitmap)
    Call GdipDeleteGraphics(lGraphics)
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
   Call GdiplusShutdown(token)
End Sub

Daniel

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Gobillot
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 17 mai 2007 à 14:50
0
Merci
Salut,

Tout dépend des filtre que tu as mis dans ton CommonDialog...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Commenter la réponse de cs_Exploreur
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 17 mai 2007 à 14:51
0
Merci
Salut ,

Exemple :

TaCommonDialog.Filter = "Fichiers Image (*.PNG)|*.Png"

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Commenter la réponse de cs_Exploreur
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 17 mai 2007 à 15:10
0
Merci
Re
pourtant j'ai bien dans le filtre png
CommonDialog2.Filter = "Tout formats Image (*.jpg;*.bmp;*.gif;*.png)|*.png;*.bmp;*.jpg;*.gif;*.gif|Image jpeg (*.jpg)|*.jpg|Image bitmap (*.bmp)|*.bmp|Image gif (*.gif)|*.gif|Image png (*.png)|*.png|Tout fichiers (*.*)|*.*"

mais c'est quand je veut ouvrir l'image il met une erreur 481
image incorrect
@+
Commenter la réponse de cs_petchy
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 17 mai 2007 à 15:22
0
Merci
Salut,

Ah...Ouvrir une image et aller chercher le chemin d'une image n'est pas la même chose....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Commenter la réponse de cs_Exploreur
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 17 mai 2007 à 15:25
0
Merci
Re
en fait je crois qui ne gere pas le format PNG,mais comment faire pour qu'il le gere
merci
petchy
Commenter la réponse de cs_petchy
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 17 mai 2007 à 15:28
0
Merci
Salut,

D'après ce que je viens de lire dans l'aide en ligne sur le contrôle PictureBox et Image, ils ne n'affichent pas le format Png.....Mais je peux me tromper car le format Png est un format Bitmap (raster)...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Commenter la réponse de cs_Exploreur
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 17 mai 2007 à 15:33
0
Merci
en effet, le png n'est pas géré par gdi32, mais par contre, tu peux utiliser GDI+ plus afficher un png dans le DC du picturebox, voir sur le site de vbaccelerator pour un wrapper GDI+ pour vb6 avec un exemple d'utilisation.
Commenter la réponse de cs_DARKSIDIOUS
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 17 mai 2007 à 16:27
0
Merci
Bonjour,
j' ai le même problème.
Du coup je me suis contenté de convertir en jpg.
C' est vrai que le résultat n' est pas top.
Mais est-ce que ça vaut vraiment la peine de faire
appel à GD+ rien que pour ça ?
Je viens de jeter un coup d' oeil et ça m' a l' air très compliqué.
VbAccelerator en est m$eme convaincu :
...Using it from VB though is more difficult

<hr />
© - En ce moment, c' est que pour Cannes...Mais moi aussi je tourne !
(Rolling, mon poisson rouge)
<hr />
<hr />
Commenter la réponse de chaibat05
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 17 mai 2007 à 16:42
0
Merci
Re
ok,merci à vous pour vos réponses,je vais essayer d'intégré le GDI+.
@ plus
petchy
Commenter la réponse de cs_petchy
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 17 mai 2007 à 16:53
0
Merci
Vu de cet angle et venant de toi,
je ne pourrais que l' adopter.
Convaincu donc.
et merci pour les précisions
Bonne fin de journée.

<hr />
© - En ce moment, c' est que pour Cannes...Mais moi aussi je tourne !
(Rolling, mon poisson rouge)
<hr />
<hr />
Commenter la réponse de chaibat05
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 17 mai 2007 à 17:00
0
Merci
juste deus petites préisions encore :
Est ce qu' il faut juste télécharger le Zip et Installer ?
Et est ce que ça sera inclut dans un Package pour le deploiement ?

<hr />
© - En ce moment, c' est que pour Cannes...Mais moi aussi je tourne !
(Rolling, mon poisson rouge)
<hr />
<hr />
Commenter la réponse de chaibat05
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 17 mai 2007 à 17:27
0
Merci
??? càd ?

Le wrapper gdi+ n'est en fait qu'un fichier tlb contenant les définitions des fonctions de la gdi+ (une sorte de fichier contenant tout les Declare function des API Windows, afin d'éviter de les déclarer dans son code), donc il faut bien entendu déployer son programme avec ce fichier de définition (qui ne pèse que quelques Ko) + la librairie GDI+ si installation sur système Windows 98 (elle est installée par défaut sur XP il me semble).
Commenter la réponse de cs_DARKSIDIOUS
cs_sirine_28_06_85 40 Messages postés jeudi 22 mars 2007Date d'inscription 6 avril 2008 Dernière intervention - 17 mai 2007 à 17:52
0
Merci
voila c'est pour toi:

CommonDialog1.DialogTitle = "Ouvrir image"
    CommonDialog1.Filter =  "Fichiers Image (*.PNG)|*.Png"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.InitDir = App.Path
    CommonDialog1.FileName = ""
    CommonDialog1.ShowOpen
Commenter la réponse de cs_sirine_28_06_85
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 17 mai 2007 à 18:57
0
Merci
@DS,
Ah bon !
en fait j' ai posté avant de télécharger et donc je croyais qu' il s' agissait
d' une mise à jour système...Mais d' après l' exemple il est surtout question de traitement
d' images, ce qui n' est pas mon truc.
Tout ce que je veux c' est pouvoir insèrer une image PNG dans une pictureBox
à travers sa propriété Picture pour agrémenter une interface.
Et il n' est même pas question que j' utilise ComomDialog.





<hr />






© - En ce moment, c' est que pour Cannes...Mais moi aussi je tourne !





(Rolling, mon poisson rouge)
Commenter la réponse de chaibat05
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 17 mai 2007 à 18:59
0
Merci
Merci quand même à sirine :-)

<hr />
© - En ce moment, c' est que pour Cannes...Mais moi aussi je tourne !
(Rolling, mon poisson rouge)
Commenter la réponse de chaibat05
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 17 mai 2007 à 19:02
0
Merci
ah non, GDI+ ne te permettra pas de mettre une image png directement dans un picturebox, c'est une librairie, tout comme gdi32, qui te permet d'utiliser des images PNG. Elle ne remplace pas la gdi32, il s'agit juste d'une évolution logique du gdi32.

Donc pour afficher l'image png dans le picturebox, il faut passer par les fonctions de la GDI+ (comme si tu utilisais LoadImage de la gdi32).
Commenter la réponse de cs_DARKSIDIOUS
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 17 mai 2007 à 19:07
0
Merci
Bon..bon...bon...!
Je laisse tomber alors...:-)
PS: Rolling te salue et me charge de te dire que tu le fais penser
à  "Dark side of the moon"...Son album préféré...

A+

<hr />
© - En ce moment, c' est que pour Cannes...Mais moi aussi je tourne !
(Rolling, mon poisson rouge)
Commenter la réponse de chaibat05

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.