Planche contact en VB.Net

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 18 oct. 2013 à 17:16
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 21 oct. 2013 à 14:10
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/100176-planche-contact-en-vb-net

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
21 oct. 2013 à 14:10
danriv,

je viens de faire une mise à jour avec la possibilité de voir les vignettes dans leur mode initial

@+ Le Pivert
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 oct. 2013 à 17:03
Si tu ne veux pas t'embêter, il y a encore plus simple. Agir sur les propriétés des vignettes comme ceci:

pic.SizeMode = PictureBoxSizeMode.Zoom
pic.BorderStyle = BorderStyle.Fixed3D
pic.BackColor = Color.Beige

Essaie tu verras ce qui te convient.
En mettant le point derrière Color tu as un menu contextuel qui s'ouvre où tu peux choisir les couleurs.
danriv Messages postés 5 Date d'inscription jeudi 17 octobre 2013 Statut Membre Dernière intervention 20 octobre 2013
20 oct. 2013 à 16:17
Encore Merci, encore quelques broutilles à résoudre et je le penche sur le sujet...
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
19 oct. 2013 à 08:54
Maintenant si on veut aller plus loin et savoir si l'image chargée est en paysage ou portrait pour pouvoir faire les réglages, voici le code:

Déclarations

Dim monImage As Image
Dim w As Integer
Dim h As Integer

Dans les 2 ouvertures:

pic = New PictureBox()
i += 1
pic.Name = "Pic" & i
pic.SizeMode = PictureBoxSizeMode.StretchImage
pic.BorderStyle = BorderStyle.Fixed3D
monImage = Image.FromFile(imageFile)
h = monImage.Height
w = monImage.Width
If w > h Then
MsgBox("paysage")
Else
MsgBox("portrait")
End If
pic.Image = Image.FromFile(imageFile)
pic.SetBounds(x, y, vignette, vignette)
x += vignette

Ensuite il suffit de mettre une boolean à la place des MsgBox et mettre les réglages qui s'imposent.

Bon WE

@+ Le Pivert
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
19 oct. 2013 à 08:30
Je t'ai répondu un peu vite hier. Voici le code dans les déclarations:

Dim largeur As Integer

et le code à mettre dans les 2 ouvertures:

'dimension des vignettes
If ToolStripCmbimag.SelectedIndex = 0 Then
vignette = 125
largeur = 166
Else
vignette = 90
largeur = 120
End If

et après:

pic = New PictureBox()
i += 1
pic.Name = "Pic" & i
pic.SizeMode = PictureBoxSizeMode.StretchImage
pic.BorderStyle = BorderStyle.Fixed3D
pic.Image = Image.FromFile(images)
pic.SetBounds(x, y, largeur, vignette)
x += largeur
'vérifier s'il ya suffisamment d'espace dans l'axe x pour ajouter une image
If x >= Panel1.Width Or (x + largeur) > Panel1.Width Then
diff = Panel1.Width - x
'S'il n'y a pas assez d'espace, commencer une nouvelle ligne ci-dessous
y += vignette
x = 0

Bonne programmation
danriv Messages postés 5 Date d'inscription jeudi 17 octobre 2013 Statut Membre Dernière intervention 20 octobre 2013
19 oct. 2013 à 07:52
Merci pour l'info...@+
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
18 oct. 2013 à 18:54
Bonjour danriv,

merci pour le commentaire. Pour ce qui est des vignettes carrées, c'est pour la facilité. Suivant les images chargées en portrait et paysage cela serait très compliqué. Et aussi pour la planche ce ne serait pas régulier. Par contre si cela t'interesse et que tu ne charges que des images en paysage, voici le code à modifier dans les 2 ouvertures:

pic.Name = "Pic" & i
pic.SizeMode = PictureBoxSizeMode.StretchImage
pic.BorderStyle = BorderStyle.Fixed3D
pic.Image = Image.FromFile(imageFile)
pic.SetBounds(x, y, 175, vignette) 'largeur et hauteur de la vignette
x += vignette

C'est simple!

@+ Le Pivert
danriv Messages postés 5 Date d'inscription jeudi 17 octobre 2013 Statut Membre Dernière intervention 20 octobre 2013
Modifié par danriv le 18/10/2013 à 18:17
Bien réalisé. Dommage que les vignettes soient carrées, tout du moins qu'elle ne respectent les proportions initiales.
Bonne suite...
Rejoignez-nous