Planche contact

cs_nicolasheurtevin Messages postés 88 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 29 août 2006 - 2 mai 2005 à 16:42
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 3 mai 2005 à 11:37
Bonjour,

J'ai un fichier que nous appelerons photo.bmp et je voudrais, via le code, créer en sortie un fichier planche.bmp contenant 4 fois la photo du fichier photo.bmp de manière à faire une planche à la manière des photomatons. Comment faire ?

Merci pour toute aide

Nicolas (http://pagesperso.laposte.net/heurteweb/)

4 réponses

badboy38 Messages postés 95 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 4 mars 2013
2 mai 2005 à 17:51
Salut,

Par exemple (c'est pas parfait, il y a surement plus simple mais je débute en VB...):

- tu charges "Microsoft common control 6.0 (SP3)"

- dans le code d'un bouton, ou dans le load de la form:

Dim w As Integer

Dim h As Integer

Dim l As Integer

Dim t As Integer

Dim image As String

CommonDialog1.FileName = ""

CommonDialog1.InitDir = "E:\mesdocs\Mes images" 'si besoin (string)

CommonDialog1.Filter = "Fichier JPEG (*.JPG *.JPEG *.JPE *.JFIF)
|*.jpg;*.jpeg;*.jpe;*.jfif;|Fichier BITMAP (*.BMP *.DIB) |*.bmp;*.dib"
'si besoin

CommonDialog1.ShowOpen

image = CommonDialog1.FileName

If image <> "" Then

Image1.Picture = LoadPicture(image)

w = Image1.Width

h = Image1.Height

t = Image1.Top

l = Image1.Left

Form1.Width = 2 * w + 3 * l + 150 '150 pour avoir un peu d'espace

Form1.Height = 2 * h + 3 * t + 150 'idem

Image2.Left = w + 2 * l

Image3.Left = l

Image4.Left = w + 2 * l

Image2.Top = t

Image3.Top = h + 2 * t

Image4.Top = h + 2 * t

Image2.Picture = LoadPicture(image)

Image3.Picture = LoadPicture(image)

Image4.Picture = LoadPicture(image)

End If



Avec ca, tu affiches tes 4 images et tu redimentionnes ta form à la taille voulue.



Bon Courage!



BadBoy38
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 mai 2005 à 18:53
Dim pic As Picture
Dim W As Long
Dim H As Long


Set pic = LoadPicture("C:\IMAGES\logovb3.bmp")


W = ScaleX(pic.Width, vbHimetric, vbTwips)
H = ScaleY(pic.Height, vbHimetric, vbTwips)


Picture1.Width = W * 2
Picture1.Height = H * 2


DoEvents
Picture1.PaintPicture pic, 0, 0, W, H, 0, 0, W, H
Picture1.PaintPicture pic, W, 0, W, H, 0, 0, W, H
Picture1.PaintPicture pic, 0, H, W, H, 0, 0, W, H
Picture1.PaintPicture pic, W, H, W, H, 0, 0, W, H
SavePicture Picture1.Image(FileName)

Daniel
0
cs_nicolasheurtevin Messages postés 88 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 29 août 2006
3 mai 2005 à 10:22
Merci BadBoy et Daniel, vos codes sont très intéressants. Ce que je recherche se rapproche cependant plus du code de Daniel. Et donc Daniel, quand j'ouvre le fichier image généré, j'ai une image unicolore marron beige avec aucune photo dedans.
Mettons que mon image en entrée s'appelle test1.bmp (l'image se trouve dans le répertoire du rendez-vous) et que la planche contact en sortie s'appelle planche1.bmp, j'ai donc saisi le code suivant :

Dim pic As Picture
Dim W As Long
Dim H As Long
Set pic = LoadPicture(App.Path & "\test1.bmp")
W = ScaleX(pic.Width, vbHimetric, vbTwips)
H = ScaleY(pic.Height, vbHimetric, vbTwips)
Picture1.Width = W * 2
Picture1.Height = H * 2
DoEvents
Picture1.PaintPicture pic, 0, 0, W, H, 0, 0, W, H
Picture1.PaintPicture pic, W, 0, W, H, 0, 0, W, H
Picture1.PaintPicture pic, 0, H, W, H, 0, 0, W, H
Picture1.PaintPicture pic, W, H, W, H, 0, 0, W, H
SavePicture Picture1.image, App.Path & "\planche1.bmp"
MsgBox "Terminé !"

Mais sans succès !

Nicolas (http://pagesperso.laposte.net/heurteweb/)
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
3 mai 2005 à 11:37
est-ce que l'image s'affiche complétement dans la PictureBox. ?
ce n'était pas le cas sans le DoEvents je n'avais qu'un bout de l'image, certainement le temps nécessaire pour redimentionner la PictureBox.

mais bon je vois une autre raison pour qu'elle ne se sauvegarde pas:
As tu mis AutoRedraw à True ?

Daniel
0
Rejoignez-nous