CONVERTIR IMAGE EN TON SÉPIA

cdbi Messages postés 50 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 4 mai 2022 - 31 mai 2011 à 22:24
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 2 juin 2011 à 06:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53161-convertir-image-en-ton-sepia

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
2 juin 2011 à 06:38
Je vois qu'en VB6 la matrice est pareil. Je viens de déposer une source Colomatrice_VB où tu peux faire des ajustements de couleurs avec le code VB qui s'affiche en temps réel.
http://www.vbfrance.com/codes/COLORMATRIX_VB_53227.aspx
Si tu le désires comme tu n'as pas VB.Net, je peux t'envoyer l'exe. Tu pourras faire tes réglages et voir les modifications à apporter à ton code.
Laisse moi ton e-mail sur MP
@+ Le Pivert
cdbi Messages postés 50 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 4 mai 2022
2 juin 2011 à 02:43
Bonsoir, Le Pivert
J'utilisais dejà ColorMatrix pour la transparence avec GDI+
Ta matrice me donne des images à dominance verte
Je cherchais à reproduire des images anciennes
Voiçi ma matrice
avec une transparence de 0.7 sur un Backcolor de &HA5BFE2
J'ai augmenté le Rouge et diminué le Vert
With lpColorMatrix.m(0, 0) 1: .m(0, 1) 0.349: .m(0, 2) = 0.272: .m(0, 3) = 0: .m(0, 4) = 0.m(1, 0) 0.769: .m(1, 1) 0.131: .m(1, 2) = 0.534: .m(1, 3) = 0: .m(1, 4) = 0.m(2, 0) 0.189: .m(2, 1) 0.168: .m(2, 2) = 0.3: .m(2, 3) = 0: .m(2, 4) = 0.m(3, 0) 0: .m(3, 1) 0: .m(3, 2) = 0: .m(3, 3) = vnTransparency: .m(3, 4) = 0.m(4, 0) 0: .m(4, 1) 0: .m(4, 2) = 0: .m(4, 3) = 0: .m(4, 4) = 1
End With
Mais c'est pas encore génial
cdbi Messages postés 50 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 4 mai 2022
1 juin 2011 à 11:09
Merci, Le Pivert
Je vais étudier cela
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
1 juin 2011 à 06:11
Bonjour CDBI,
J'ai trouvé ce site qui traite la Colormatrix en VB6 avec un fichier à télécharger:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=37541&lngWId=1
Pour le code en ton sépia de la colormatrix, le voici. Essaie de l'adapter en VB6:
Dim image_attr As New ImageAttributes
Dim cm As ColorMatrix
Dim rect As Rectangle = Rectangle.Round(Pic_source.Image.GetBounds(GraphicsUnit.Pixel))
Dim wid As Integer = Pic_source.Image.Width
Dim hgt As Integer = Pic_source.Image.Height
Dim bm As Bitmap
Dim gr As Graphics
'Sepia
bm = New Bitmap(wid, hgt)
gr = Graphics.FromImage(bm)
cm = New ColorMatrix(New Single()() { _
New Single() {0.3, 0.3, 0.3, 0, 0}, _
New Single() {1, 1, 0.7, 0, 0}, _
New Single() {0.1, 0.1, 0.1, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0, 0, 0, 0, 1}})

'Vous pouvez essayer ceci aussi
'cm = New ColorMatrix(New Single()() { _
' New Single() {0.393, 0.349, 0.272, 0, 0}, _
' New Single() {0.769, 0.686, 0.534, 0, 0}, _
' New Single() {0.189, 0.168, 0.131, 0, 0}, _
' New Single() {0, 0, 0, 1, 0}, _
' New Single() {0, 0, 0, 0, 1}})

image_attr.SetColorMatrix(cm)
gr.DrawImage(Pic_source.Image, rect, 0, 0, wid, hgt, GraphicsUnit.Pixel, image_attr)
Pic_sepia.Image = bm

Bonne programmation
@+ Le Pivert
cdbi Messages postés 50 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 4 mai 2022
31 mai 2011 à 22:24
Bonsoir Le Pivert
Pourrais tu donner la méthode en Snippets sous vb6
Je ne programme pas en .net et je cherche cette fonction
pour enregistrer des images en Sepia.
D'avance Merci
CDBI
Rejoignez-nous