Comment découper une image?

nzounkeu Messages postés 1 Date d'inscription jeudi 23 septembre 2004 Statut Membre Dernière intervention 24 septembre 2004 - 24 sept. 2004 à 11:26
ShadowMaster Messages postés 184 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 18 août 2005 - 25 sept. 2004 à 00:31
Bonjour,
j'ai une image bitmap et j'aimerai effectuer une découpe et charger chaque morceau dans un tableau d'images.
j'ai essayé avec paintpicture et ça n'a rien donné. Est-ce une mauvaise interpretation des arguments de ma part!
toujours est-il que j'ai besoin de votre aide.
Merci.

2 réponses

pcpunch Messages postés 1247 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
24 sept. 2004 à 15:05
Oui il faut utiliser paintpicture mais a ma connaisance il est impossible de passer directement un paintpicture dans un objet StdPicture....

Voici un petit exemple vite fait qui Decoupe une image en 4 partie.

Il faut placer un picture1 qui servira a recevoir l'image de depart
Une picturetemp qui recevra les partie de l'image découper afin de les placer dans le tableau d'image Partie.

A la fin du code j'utilise 4 controle image (strecth = true) afin d'afficher les 4 partie.

Dim Partie(1 To 4) As StdPicture

Private Sub Form_Load()
'affichage de l'image dans picture1
Picture1.AutoSize = True
Picture1.Picture = LoadPicture("c:/image.jpg")

'Recuperation des 4 parties
PictureTemp.AutoRedraw = True
'Haut gauche
PictureTemp.Cls
PictureTemp.PaintPicture Picture1, 0, 0, PictureTemp.ScaleWidth, PictureTemp.ScaleHeight, 0, 0, Picture1.Width / 2, Picture1.Height / 2
Set partie1 = PictureTemp.Image
'Haut droit
PictureTemp.Cls
PictureTemp.PaintPicture Picture1.Image, 0, 0, PictureTemp.ScaleWidth, PictureTemp.ScaleHeight, Picture1.ScaleWidth / 2, 0, Picture1.ScaleWidth / 2, Picture1.ScaleHeight / 2
Set partie2 = PictureTemp.Image
'bas gauche
PictureTemp.Cls
PictureTemp.PaintPicture Picture1.Image, 0, 0, PictureTemp.ScaleWidth, PictureTemp.ScaleHeight, 0, Picture1.ScaleWidth / 2, Picture1.ScaleWidth / 2, Picture1.ScaleHeight / 2
Set partie3 = PictureTemp.Image
'bas gauche
PictureTemp.Cls
PictureTemp.PaintPicture Picture1.Image, 0, 0, PictureTemp.ScaleWidth, PictureTemp.ScaleHeight, Picture1.ScaleWidth / 2, Picture1.ScaleWidth / 2, Picture1.ScaleWidth / 2, Picture1.ScaleHeight / 2
Set partie4 = PictureTemp.Image

'chargement des partie
Image1.Stretch = True
Image1.Picture = partie1
Image2.Stretch = True
Image2.Picture = partie2
Image3.Stretch = True
Image3.Picture = partie3
Image4.Stretch = True
Image4.Picture = partie4



Voila c'est un exemple!!! Si qq connait un moyen de charger directement dans un objet stdpicture une partie de l'image????

Ps: peu etre du coté des apis (Bitblt ????)

++
0
ShadowMaster Messages postés 184 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 18 août 2005
25 sept. 2004 à 00:31
eu je pense que tu peu utiliser le composant microsoft pictureclip (recherche sur vbfrance) tu lui donne le nombre de ligne et de colonne (pc1.Rows, pc1.Cols), enssuite pour charger une partie dans un picture box:
set pc1.GraphicCell (0)=picture1.picture pour avoir la partie en haut à gauche, GraphicCell (1)... pour la suite.
0