Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
images, mais j'aurais voulu le découper grâce au code, donc partir d'une
image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
comment remettre chaque découpe dans une nouvelle image plus petite. Voici
ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et ensuite, je
sais pas comment remettre mes pixels de la découpe, dans une nouvelle
plus petite.
Si quelqu'un a une idée, une méthode ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
images, mais j'aurais voulu le découper grâce au code, donc partir d'une
image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
comment remettre chaque découpe dans une nouvelle image plus petite. Voici
ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et ensuite, je
sais pas comment remettre mes pixels de la découpe, dans une nouvelle
plus petite.
Si quelqu'un a une idée, une méthode ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
images, mais j'aurais voulu le découper grâce au code, donc partir d'une
image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
comment remettre chaque découpe dans une nouvelle image plus petite. Voici
ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et ensuite, je
sais pas comment remettre mes pixels de la découpe, dans une nouvelle
plus petite.
Si quelqu'un a une idée, une méthode ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe
mes images, mais j'aurais voulu le découper grâce au code, donc
partir d'une image, par exemple de 100*100 et en faire 10 images(i)
de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
sais pas comment remettre chaque découpe dans une nouvelle image plus
petite. Voici ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et
ensuite, je ne sais pas comment remettre mes pixels de la découpe,
dans une nouvelle image plus petite.
Si quelqu'un a une idée, une méthode ?
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe
mes images, mais j'aurais voulu le découper grâce au code, donc
partir d'une image, par exemple de 100*100 et en faire 10 images(i)
de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
sais pas comment remettre chaque découpe dans une nouvelle image plus
petite. Voici ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et
ensuite, je ne sais pas comment remettre mes pixels de la découpe,
dans une nouvelle image plus petite.
Si quelqu'un a une idée, une méthode ?
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe
mes images, mais j'aurais voulu le découper grâce au code, donc
partir d'une image, par exemple de 100*100 et en faire 10 images(i)
de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
sais pas comment remettre chaque découpe dans une nouvelle image plus
petite. Voici ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et
ensuite, je ne sais pas comment remettre mes pixels de la découpe,
dans une nouvelle image plus petite.
Si quelqu'un a une idée, une méthode ?
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
images, mais j'aurais voulu le découper grâce au code, donc partir d'une
image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
comment remettre chaque découpe dans une nouvelle image plus petite. Voici
ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et ensuite, je
sais pas comment remettre mes pixels de la découpe, dans une nouvelle
plus petite.
Si quelqu'un a une idée, une méthode ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
images, mais j'aurais voulu le découper grâce au code, donc partir d'une
image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
comment remettre chaque découpe dans une nouvelle image plus petite. Voici
ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et ensuite, je
sais pas comment remettre mes pixels de la découpe, dans une nouvelle
plus petite.
Si quelqu'un a une idée, une méthode ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
Bonjour,
Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
images, mais j'aurais voulu le découper grâce au code, donc partir d'une
image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
comment remettre chaque découpe dans une nouvelle image plus petite. Voici
ce que j'ai commencé:
Dim couleur(1323, 1323) As Long
Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
découper
'découpe
For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
secondes
For j = 1 To 1323
couleur(i, j) = Form1.Point(i, j)
Next j
Next i
Faudrait déjà trouver une méthode découpe plus rapide, et ensuite, je
sais pas comment remettre mes pixels de la découpe, dans une nouvelle
plus petite.
Si quelqu'un a une idée, une méthode ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
Bonjour/soir,
A noter qu'on peut aussi travailler avec un pictureclip.. je ne sais pas
exactement ce qu'il vaut mais je pense qu'il peut tout à fait convenir
ce genre de tâches.
Bonjour/soir,
A noter qu'on peut aussi travailler avec un pictureclip.. je ne sais pas
exactement ce qu'il vaut mais je pense qu'il peut tout à fait convenir
ce genre de tâches.
Bonjour/soir,
A noter qu'on peut aussi travailler avec un pictureclip.. je ne sais pas
exactement ce qu'il vaut mais je pense qu'il peut tout à fait convenir
ce genre de tâches.
Salut,
Voici l'exemple.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"ng" a écrit dans le message de news:
> Salut,
>
> Non utilise plutot PaintPicture (méthode d'un objet PictureBox), BitBlt
> encore StrechBlt (APIs GDI), je te fais un exemple dès que j'ai
> VB sur cette machine ;-)
>
> Nicolas.
>
> "surfeur75" a écrit dans le message de news:
> OU6v$#
> > Bonjour,
> >
> > Alors je voudrais faire un puzzle, et actuellement je prédécoupe
> > images, mais j'aurais voulu le découper grâce au code, donc partir
> > image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
> >
> > Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
> pas
> > comment remettre chaque découpe dans une nouvelle image plus petite.
Voici
> > ce que j'ai commencé:
> >
> > Dim couleur(1323, 1323) As Long
> > Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
> > découper
> > 'découpe
> > For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
> > secondes
> > For j = 1 To 1323
> > couleur(i, j) = Form1.Point(i, j)
> > Next j
> > Next i
> >
> > Faudrait déjà trouver une méthode découpe plus rapide, et ensuite,
je
> ne
> > sais pas comment remettre mes pixels de la découpe, dans une nouvelle
> image
> > plus petite.
> >
> > Si quelqu'un a une idée, une méthode ?
> > --
> > @+, bye, Joe.
> > Pour m'écrire ng75AROBASEnoosPOINTfr
> > remplace AROBASE et POINT par leur vrai signe
> > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
> >
> >
> >
> >
>
>
Salut,
Voici l'exemple.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"ng" <ng@ngsoft-fr.com> a écrit dans le message de news:
et3VhbB6DHA.3664@tk2msftngp13.phx.gbl...
> Salut,
>
> Non utilise plutot PaintPicture (méthode d'un objet PictureBox), BitBlt
> encore StrechBlt (APIs GDI), je te fais un exemple dès que j'ai
> VB sur cette machine ;-)
>
> Nicolas.
>
> "surfeur75" <surfeur75@paris.fr> a écrit dans le message de news:
> OU6v$#A6DHA.2764@TK2MSFTNGP09.phx.gbl...
> > Bonjour,
> >
> > Alors je voudrais faire un puzzle, et actuellement je prédécoupe
> > images, mais j'aurais voulu le découper grâce au code, donc partir
> > image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
> >
> > Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
> pas
> > comment remettre chaque découpe dans une nouvelle image plus petite.
Voici
> > ce que j'ai commencé:
> >
> > Dim couleur(1323, 1323) As Long
> > Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
> > découper
> > 'découpe
> > For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
> > secondes
> > For j = 1 To 1323
> > couleur(i, j) = Form1.Point(i, j)
> > Next j
> > Next i
> >
> > Faudrait déjà trouver une méthode découpe plus rapide, et ensuite,
je
> ne
> > sais pas comment remettre mes pixels de la découpe, dans une nouvelle
> image
> > plus petite.
> >
> > Si quelqu'un a une idée, une méthode ?
> > --
> > @+, bye, Joe.
> > Pour m'écrire ng75AROBASEnoosPOINTfr
> > remplace AROBASE et POINT par leur vrai signe
> > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
> >
> >
> >
> >
>
>
Salut,
Voici l'exemple.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"ng" a écrit dans le message de news:
> Salut,
>
> Non utilise plutot PaintPicture (méthode d'un objet PictureBox), BitBlt
> encore StrechBlt (APIs GDI), je te fais un exemple dès que j'ai
> VB sur cette machine ;-)
>
> Nicolas.
>
> "surfeur75" a écrit dans le message de news:
> OU6v$#
> > Bonjour,
> >
> > Alors je voudrais faire un puzzle, et actuellement je prédécoupe
> > images, mais j'aurais voulu le découper grâce au code, donc partir
> > image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
> >
> > Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
> pas
> > comment remettre chaque découpe dans une nouvelle image plus petite.
Voici
> > ce que j'ai commencé:
> >
> > Dim couleur(1323, 1323) As Long
> > Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
> > découper
> > 'découpe
> > For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
> > secondes
> > For j = 1 To 1323
> > couleur(i, j) = Form1.Point(i, j)
> > Next j
> > Next i
> >
> > Faudrait déjà trouver une méthode découpe plus rapide, et ensuite,
je
> ne
> > sais pas comment remettre mes pixels de la découpe, dans une nouvelle
> image
> > plus petite.
> >
> > Si quelqu'un a une idée, une méthode ?
> > --
> > @+, bye, Joe.
> > Pour m'écrire ng75AROBASEnoosPOINTfr
> > remplace AROBASE et POINT par leur vrai signe
> > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
> >
> >
> >
> >
>
>
"François Picalausa" a écrit dans le message de
news:
> Bonjour/soir,
>
> A noter qu'on peut aussi travailler avec un pictureclip.. je ne sais pas
> exactement ce qu'il vaut mais je pense qu'il peut tout à fait convenir
pour
> ce genre de tâches.
Bonjour,
effectivment, le PictureClip est parfait pour ça;
je joins ici un petit exemple, tiré tel quel de la doc, qui illustre le
fonctionnement de la chose. Voir la doc pour plus de détails bien sur.
The following example displays a Clip image in a picture box when the user
specifies X and Y coordinates and then clicks a form. First create a form
with a PictureBox, a PictureClip control, and two TextBox controls. At
design time, use the Properties sheet to load a valid bitmap into the
PictureClip control.
Private Sub Form_Click ()
Dim SaveMode As Integer
' Save the current ScaleMode for the picture box.
SaveMode = Picture1.ScaleMode
' Get X and Y coordinates of the clipping region.
PicClip1.ClipX = Val(Text1.Text)
PicClip1.ClipY = Val(Text2.Text)
' Set the area of the clipping region (in pixels).
PicClip1.ClipHeight = 100
PicClip1.ClipWidth = 100
' Set the picture box ScaleMode to pixels.
Picture1.ScaleMode = 3
' Set the destination area to fill the picture box.
PicClip1.StretchX = Picture1.ScaleWidth
PicClip1.StretchY = Picture1.ScaleHeight
' Assign the clipped bitmap to the picture box.
Picture1.Picture = PicClip1.Clip
' Reset the ScaleMode of the picture box.
Picture1.ScaleMode = SaveMode
End Sub
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:uSrckSK6DHA.2412@TK2MSFTNGP11.phx.gbl...
> Bonjour/soir,
>
> A noter qu'on peut aussi travailler avec un pictureclip.. je ne sais pas
> exactement ce qu'il vaut mais je pense qu'il peut tout à fait convenir
pour
> ce genre de tâches.
Bonjour,
effectivment, le PictureClip est parfait pour ça;
je joins ici un petit exemple, tiré tel quel de la doc, qui illustre le
fonctionnement de la chose. Voir la doc pour plus de détails bien sur.
The following example displays a Clip image in a picture box when the user
specifies X and Y coordinates and then clicks a form. First create a form
with a PictureBox, a PictureClip control, and two TextBox controls. At
design time, use the Properties sheet to load a valid bitmap into the
PictureClip control.
Private Sub Form_Click ()
Dim SaveMode As Integer
' Save the current ScaleMode for the picture box.
SaveMode = Picture1.ScaleMode
' Get X and Y coordinates of the clipping region.
PicClip1.ClipX = Val(Text1.Text)
PicClip1.ClipY = Val(Text2.Text)
' Set the area of the clipping region (in pixels).
PicClip1.ClipHeight = 100
PicClip1.ClipWidth = 100
' Set the picture box ScaleMode to pixels.
Picture1.ScaleMode = 3
' Set the destination area to fill the picture box.
PicClip1.StretchX = Picture1.ScaleWidth
PicClip1.StretchY = Picture1.ScaleHeight
' Assign the clipped bitmap to the picture box.
Picture1.Picture = PicClip1.Clip
' Reset the ScaleMode of the picture box.
Picture1.ScaleMode = SaveMode
End Sub
"François Picalausa" a écrit dans le message de
news:
> Bonjour/soir,
>
> A noter qu'on peut aussi travailler avec un pictureclip.. je ne sais pas
> exactement ce qu'il vaut mais je pense qu'il peut tout à fait convenir
pour
> ce genre de tâches.
Bonjour,
effectivment, le PictureClip est parfait pour ça;
je joins ici un petit exemple, tiré tel quel de la doc, qui illustre le
fonctionnement de la chose. Voir la doc pour plus de détails bien sur.
The following example displays a Clip image in a picture box when the user
specifies X and Y coordinates and then clicks a form. First create a form
with a PictureBox, a PictureClip control, and two TextBox controls. At
design time, use the Properties sheet to load a valid bitmap into the
PictureClip control.
Private Sub Form_Click ()
Dim SaveMode As Integer
' Save the current ScaleMode for the picture box.
SaveMode = Picture1.ScaleMode
' Get X and Y coordinates of the clipping region.
PicClip1.ClipX = Val(Text1.Text)
PicClip1.ClipY = Val(Text2.Text)
' Set the area of the clipping region (in pixels).
PicClip1.ClipHeight = 100
PicClip1.ClipWidth = 100
' Set the picture box ScaleMode to pixels.
Picture1.ScaleMode = 3
' Set the destination area to fill the picture box.
PicClip1.StretchX = Picture1.ScaleWidth
PicClip1.StretchY = Picture1.ScaleHeight
' Assign the clipped bitmap to the picture box.
Picture1.Picture = PicClip1.Clip
' Reset the ScaleMode of the picture box.
Picture1.ScaleMode = SaveMode
End Sub
Bonsoir,
Il faut charger l'image dans un DC en memoire compatible avec l'écran
à l'aide de createcompatibleDC&(0&).
en utilisant un objet DIBsection. Puis le transferer sur un DC de
périphérique (pictureBox par exemple) en combinant les jeux de coordonnées
(pixel pour le DIB et mode de mapping pour le DC destnation) pour le
découper à l'affichage en fonction de ce que tu souhaite.
Cette methode te permet de creer autant de pieces que tu le souhaties tout
en n'ayant qu'une image en mémoire
Christophe Vergon
ci dessous les déclarations API necessaires::
Private Declare Function CreateCompatibleDC& Lib "gdi32" (ByVal hdc As
Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC As Long, ByVal
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long,
hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long,
hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal nSrcWidth As
Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
Private Declare Function CreateDIBSection& Lib "gdi32" (ByVal hdc As Long,
pBitmapInfo As BITMAPINFO, ByVal un As Long, lplpVoid As Long, ByVal
As Long, ByVal dw As Long)
Private Declare Function SetDIBColorTable& Lib "gdi32" (ByVal hdc As Long,
ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD)
Private Declare Function SetStretchBltMode& Lib "gdi32" (ByVal hdc As
ByVal nStretchMode As Long)
Private Declare Function StretchDIBits& Lib "gdi32" (ByVal hdc As Long,
ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long,
SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal
As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long,
ByVal dwRop As Long)
"surfeur75" a écrit dans le message de news:
OU6v$#
> Bonjour,
>
> Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
> images, mais j'aurais voulu le découper grâce au code, donc partir d'une
> image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
>
> Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
pas
> comment remettre chaque découpe dans une nouvelle image plus petite.
> ce que j'ai commencé:
>
> Dim couleur(1323, 1323) As Long
> Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
> découper
> 'découpe
> For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
> secondes
> For j = 1 To 1323
> couleur(i, j) = Form1.Point(i, j)
> Next j
> Next i
>
> Faudrait déjà trouver une méthode découpe plus rapide, et ensuite,
ne
> sais pas comment remettre mes pixels de la découpe, dans une nouvelle
image
> plus petite.
>
> Si quelqu'un a une idée, une méthode ?
> --
> @+, bye, Joe.
> Pour m'écrire ng75AROBASEnoosPOINTfr
> remplace AROBASE et POINT par leur vrai signe
> Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
>
>
>
>
Bonsoir,
Il faut charger l'image dans un DC en memoire compatible avec l'écran
à l'aide de createcompatibleDC&(0&).
en utilisant un objet DIBsection. Puis le transferer sur un DC de
périphérique (pictureBox par exemple) en combinant les jeux de coordonnées
(pixel pour le DIB et mode de mapping pour le DC destnation) pour le
découper à l'affichage en fonction de ce que tu souhaite.
Cette methode te permet de creer autant de pieces que tu le souhaties tout
en n'ayant qu'une image en mémoire
Christophe Vergon
ci dessous les déclarations API necessaires::
Private Declare Function CreateCompatibleDC& Lib "gdi32" (ByVal hdc As
Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC As Long, ByVal
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long,
hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long,
hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal nSrcWidth As
Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
Private Declare Function CreateDIBSection& Lib "gdi32" (ByVal hdc As Long,
pBitmapInfo As BITMAPINFO, ByVal un As Long, lplpVoid As Long, ByVal
As Long, ByVal dw As Long)
Private Declare Function SetDIBColorTable& Lib "gdi32" (ByVal hdc As Long,
ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD)
Private Declare Function SetStretchBltMode& Lib "gdi32" (ByVal hdc As
ByVal nStretchMode As Long)
Private Declare Function StretchDIBits& Lib "gdi32" (ByVal hdc As Long,
ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long,
SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal
As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long,
ByVal dwRop As Long)
"surfeur75" <surfeur75@paris.fr> a écrit dans le message de news:
OU6v$#A6DHA.2764@TK2MSFTNGP09.phx.gbl...
> Bonjour,
>
> Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
> images, mais j'aurais voulu le découper grâce au code, donc partir d'une
> image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
>
> Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
pas
> comment remettre chaque découpe dans une nouvelle image plus petite.
> ce que j'ai commencé:
>
> Dim couleur(1323, 1323) As Long
> Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
> découper
> 'découpe
> For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
> secondes
> For j = 1 To 1323
> couleur(i, j) = Form1.Point(i, j)
> Next j
> Next i
>
> Faudrait déjà trouver une méthode découpe plus rapide, et ensuite,
ne
> sais pas comment remettre mes pixels de la découpe, dans une nouvelle
image
> plus petite.
>
> Si quelqu'un a une idée, une méthode ?
> --
> @+, bye, Joe.
> Pour m'écrire ng75AROBASEnoosPOINTfr
> remplace AROBASE et POINT par leur vrai signe
> Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
>
>
>
>
Bonsoir,
Il faut charger l'image dans un DC en memoire compatible avec l'écran
à l'aide de createcompatibleDC&(0&).
en utilisant un objet DIBsection. Puis le transferer sur un DC de
périphérique (pictureBox par exemple) en combinant les jeux de coordonnées
(pixel pour le DIB et mode de mapping pour le DC destnation) pour le
découper à l'affichage en fonction de ce que tu souhaite.
Cette methode te permet de creer autant de pieces que tu le souhaties tout
en n'ayant qu'une image en mémoire
Christophe Vergon
ci dessous les déclarations API necessaires::
Private Declare Function CreateCompatibleDC& Lib "gdi32" (ByVal hdc As
Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC As Long, ByVal
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long,
hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long,
hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal nSrcWidth As
Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
Private Declare Function CreateDIBSection& Lib "gdi32" (ByVal hdc As Long,
pBitmapInfo As BITMAPINFO, ByVal un As Long, lplpVoid As Long, ByVal
As Long, ByVal dw As Long)
Private Declare Function SetDIBColorTable& Lib "gdi32" (ByVal hdc As Long,
ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD)
Private Declare Function SetStretchBltMode& Lib "gdi32" (ByVal hdc As
ByVal nStretchMode As Long)
Private Declare Function StretchDIBits& Lib "gdi32" (ByVal hdc As Long,
ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long,
SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal
As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long,
ByVal dwRop As Long)
"surfeur75" a écrit dans le message de news:
OU6v$#
> Bonjour,
>
> Alors je voudrais faire un puzzle, et actuellement je prédécoupe mes
> images, mais j'aurais voulu le découper grâce au code, donc partir d'une
> image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
>
> Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne sais
pas
> comment remettre chaque découpe dans une nouvelle image plus petite.
> ce que j'ai commencé:
>
> Dim couleur(1323, 1323) As Long
> Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base à
> découper
> 'découpe
> For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met 20
> secondes
> For j = 1 To 1323
> couleur(i, j) = Form1.Point(i, j)
> Next j
> Next i
>
> Faudrait déjà trouver une méthode découpe plus rapide, et ensuite,
ne
> sais pas comment remettre mes pixels de la découpe, dans une nouvelle
image
> plus petite.
>
> Si quelqu'un a une idée, une méthode ?
> --
> @+, bye, Joe.
> Pour m'écrire ng75AROBASEnoosPOINTfr
> remplace AROBASE et POINT par leur vrai signe
> Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
>
>
>
>
Merci, je vais étudier la question dés ce soit, si je ne comprends pas
je t'écrirais...
Si ton adresse 'est pas bonne, veux-tu me la donner ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"ng" a écrit dans le message de news:
> Salut,
>
> Voici l'exemple.
>
> --
> Nicolas G.
> FAQ VB : http://faq.vb.free.fr
> API Guide : http://www.allapi.net
> Google Groups : http://groups.google.fr/
> MZ-Tools : http://www.mztools.com/
>
>
> "ng" a écrit dans le message de news:
>
> > Salut,
> >
> > Non utilise plutot PaintPicture (méthode d'un objet PictureBox),
ou
> > encore StrechBlt (APIs GDI), je te fais un exemple dès que j'ai
d'installé
> > VB sur cette machine ;-)
> >
> > Nicolas.
> >
> > "surfeur75" a écrit dans le message de news:
> > OU6v$#
> > > Bonjour,
> > >
> > > Alors je voudrais faire un puzzle, et actuellement je prédécoupe
mes
> > > images, mais j'aurais voulu le découper grâce au code, donc partir
d'une
> > > image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
> > >
> > > Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
sais
> > pas
> > > comment remettre chaque découpe dans une nouvelle image plus petite.
> Voici
> > > ce que j'ai commencé:
> > >
> > > Dim couleur(1323, 1323) As Long
> > > Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base
> > > découper
> > > 'découpe
> > > For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met
> > > secondes
> > > For j = 1 To 1323
> > > couleur(i, j) = Form1.Point(i, j)
> > > Next j
> > > Next i
> > >
> > > Faudrait déjà trouver une méthode découpe plus rapide, et
> je
> > ne
> > > sais pas comment remettre mes pixels de la découpe, dans une
> > image
> > > plus petite.
> > >
> > > Si quelqu'un a une idée, une méthode ?
> > > --
> > > @+, bye, Joe.
> > > Pour m'écrire ng75AROBASEnoosPOINTfr
> > > remplace AROBASE et POINT par leur vrai signe
> > > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
est!
> > >
> > >
> > >
> > >
> >
> >
>
>
>
Merci, je vais étudier la question dés ce soit, si je ne comprends pas
je t'écrirais...
Si ton adresse 'est pas bonne, veux-tu me la donner ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"ng" <ng@ngsoft-fr.com> a écrit dans le message de news:
Oj2F7LK6DHA.2496@TK2MSFTNGP09.phx.gbl...
> Salut,
>
> Voici l'exemple.
>
> --
> Nicolas G.
> FAQ VB : http://faq.vb.free.fr
> API Guide : http://www.allapi.net
> Google Groups : http://groups.google.fr/
> MZ-Tools : http://www.mztools.com/
>
>
> "ng" <ng@ngsoft-fr.com> a écrit dans le message de news:
> et3VhbB6DHA.3664@tk2msftngp13.phx.gbl...
> > Salut,
> >
> > Non utilise plutot PaintPicture (méthode d'un objet PictureBox),
ou
> > encore StrechBlt (APIs GDI), je te fais un exemple dès que j'ai
d'installé
> > VB sur cette machine ;-)
> >
> > Nicolas.
> >
> > "surfeur75" <surfeur75@paris.fr> a écrit dans le message de news:
> > OU6v$#A6DHA.2764@TK2MSFTNGP09.phx.gbl...
> > > Bonjour,
> > >
> > > Alors je voudrais faire un puzzle, et actuellement je prédécoupe
mes
> > > images, mais j'aurais voulu le découper grâce au code, donc partir
d'une
> > > image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
> > >
> > > Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
sais
> > pas
> > > comment remettre chaque découpe dans une nouvelle image plus petite.
> Voici
> > > ce que j'ai commencé:
> > >
> > > Dim couleur(1323, 1323) As Long
> > > Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base
> > > découper
> > > 'découpe
> > > For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met
> > > secondes
> > > For j = 1 To 1323
> > > couleur(i, j) = Form1.Point(i, j)
> > > Next j
> > > Next i
> > >
> > > Faudrait déjà trouver une méthode découpe plus rapide, et
> je
> > ne
> > > sais pas comment remettre mes pixels de la découpe, dans une
> > image
> > > plus petite.
> > >
> > > Si quelqu'un a une idée, une méthode ?
> > > --
> > > @+, bye, Joe.
> > > Pour m'écrire ng75AROBASEnoosPOINTfr
> > > remplace AROBASE et POINT par leur vrai signe
> > > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
est!
> > >
> > >
> > >
> > >
> >
> >
>
>
>
Merci, je vais étudier la question dés ce soit, si je ne comprends pas
je t'écrirais...
Si ton adresse 'est pas bonne, veux-tu me la donner ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"ng" a écrit dans le message de news:
> Salut,
>
> Voici l'exemple.
>
> --
> Nicolas G.
> FAQ VB : http://faq.vb.free.fr
> API Guide : http://www.allapi.net
> Google Groups : http://groups.google.fr/
> MZ-Tools : http://www.mztools.com/
>
>
> "ng" a écrit dans le message de news:
>
> > Salut,
> >
> > Non utilise plutot PaintPicture (méthode d'un objet PictureBox),
ou
> > encore StrechBlt (APIs GDI), je te fais un exemple dès que j'ai
d'installé
> > VB sur cette machine ;-)
> >
> > Nicolas.
> >
> > "surfeur75" a écrit dans le message de news:
> > OU6v$#
> > > Bonjour,
> > >
> > > Alors je voudrais faire un puzzle, et actuellement je prédécoupe
mes
> > > images, mais j'aurais voulu le découper grâce au code, donc partir
d'une
> > > image, par exemple de 100*100 et en faire 10 images(i) de 10*10...
> > >
> > > Lla découpe mets 20 secondes l'image, c'est trop long! Et je ne
sais
> > pas
> > > comment remettre chaque découpe dans une nouvelle image plus petite.
> Voici
> > > ce que j'ai commencé:
> > >
> > > Dim couleur(1323, 1323) As Long
> > > Picture1.Picture = LoadPicture("Image_test_3.bmp") ' image de base
> > > découper
> > > 'découpe
> > > For i = 1 To 1323 ' 1ere découpe au pixel pour test, mais ça met
> > > secondes
> > > For j = 1 To 1323
> > > couleur(i, j) = Form1.Point(i, j)
> > > Next j
> > > Next i
> > >
> > > Faudrait déjà trouver une méthode découpe plus rapide, et
> je
> > ne
> > > sais pas comment remettre mes pixels de la découpe, dans une
> > image
> > > plus petite.
> > >
> > > Si quelqu'un a une idée, une méthode ?
> > > --
> > > @+, bye, Joe.
> > > Pour m'écrire ng75AROBASEnoosPOINTfr
> > > remplace AROBASE et POINT par leur vrai signe
> > > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
est!
> > >
> > >
> > >
> > >
> >
> >
>
>
>