Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment découper 1 image en plusieurs ???

4 réponses
Avatar
surfeur75
Bonjour,

Ben j'ai toujours mon problème de découpage d'image, 5*7=35 images à
découper à partir d'une image d'origine.
Principe: chargement de 'limage d'origine picture1, découpage de picture1 en
35 images qui vont se loger dans les images de destination picture2(35) [1 à
35], et déchargement de picture1...
J'ai commencé sur la base de ce que m'avait indiqué notre ami "ng", mais
manifestement ça ne répond plus, ce qu'il fait ne fonctionnant pas je
cherche une autre voix, alors j'ai fait ce qui suit avec l'API "BitBlt"
(mais je ne connais pas non plus), normalement ça marchera en boucle, j'ai
juste essayé sur 3 images, en fait, ça n'en copie qu'une, si quelqu'un a une
idée pour que ça marche, merci de me l'indiquer ???

Option Explicit
Private Declare Function BitBlt Lib "gdi32" ( _
ByVal hDestDC As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
Private Const SRCCOPY = &HCC0020
'
Sub m_decoupe_Click()
Dim cote As Long
Dim x(35)
cote = 1335
Picture1.Picture = LoadPicture("ImageOrigine.jpg")
x(1) = BitBlt(Picture2(1).hDC, 0, 0, cote, cote, Picture1.hDC, cote*0, 0,
SRCCOPY)
x(2) = BitBlt(Picture2(2).hDC, 0, 0, cote, cote, Picture1.hDC, cote*1, 0,
SRCCOPY)
x(3) = BitBlt(Picture2(3).hDC, 0, 0, cote, cote, Picture1.hDC, cote*2, 0,
SRCCOPY)
End Sub
--
@+, 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!

4 réponses

Avatar
Zoury
Salut Joe! :O)

regarde cet exemple :
http://groups.google.com/groups?selm=uel0q6woDHA.372%40TK2MSFTNGP11.phx.gbl

--
Best Regards
Yanick Lefebvre

Please posts answers to the group so all can benefit
Avatar
Pascal B.
Bonjour Surfeur75,

Il existe un controle, très simple, pour découper une image: PictureClip

Exemple:

PictureClip1.Picture = LoadPicture("ImageOrigine.jpg")
PictureClip1.Cols = 5
PictureClip1.Rows = 7
For i = 1 To 35
Picture2(i)=PictureClip1.GraphicCell(i-1)
Next i

Remarque: Le control PictureClip est invisible en Run-Time


Cordialement,
Pascal

Pourquoi faire compliqué, quand on peut faire simple ? ...


"surfeur75" a écrit dans le message de news:eH7v$
| Bonjour,
|
| Ben j'ai toujours mon problème de découpage d'image, 5*75 images à
| découper à partir d'une image d'origine.
| Principe: chargement de 'limage d'origine picture1, découpage de picture1 en
| 35 images qui vont se loger dans les images de destination picture2(35) [1 à
| 35], et déchargement de picture1...
| J'ai commencé sur la base de ce que m'avait indiqué notre ami "ng", mais
| manifestement ça ne répond plus, ce qu'il fait ne fonctionnant pas je
| cherche une autre voix, alors j'ai fait ce qui suit avec l'API "BitBlt"
| (mais je ne connais pas non plus), normalement ça marchera en boucle, j'ai
| juste essayé sur 3 images, en fait, ça n'en copie qu'une, si quelqu'un a une
| idée pour que ça marche, merci de me l'indiquer ???
|
| Option Explicit
| Private Declare Function BitBlt Lib "gdi32" ( _
| ByVal hDestDC As Long, _
| ByVal x As Long, _
| ByVal y As Long, _
| ByVal nWidth As Long, _
| ByVal nHeight As Long, _
| ByVal hSrcDC As Long, _
| ByVal xSrc As Long, _
| ByVal ySrc As Long, _
| ByVal dwRop As Long) As Long
| Private Const SRCCOPY = &HCC0020
| '
| Sub m_decoupe_Click()
| Dim cote As Long
| Dim x(35)
| cote = 1335
| Picture1.Picture = LoadPicture("ImageOrigine.jpg")
| x(1) = BitBlt(Picture2(1).hDC, 0, 0, cote, cote, Picture1.hDC, cote*0, 0,
| SRCCOPY)
| x(2) = BitBlt(Picture2(2).hDC, 0, 0, cote, cote, Picture1.hDC, cote*1, 0,
| SRCCOPY)
| x(3) = BitBlt(Picture2(3).hDC, 0, 0, cote, cote, Picture1.hDC, cote*2, 0,
| SRCCOPY)
| End Sub
| --
| @+, 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!
|
|
|
|
|
|
|
|
Avatar
surfeur75
Bonjour, merci, non, je ne peux pas pendre le pictureClip, car il
n'accepte que des bmp, et pour ce que je fais c'est bien trop volumineux, je
prend du jpg... Merci :o)
--
@+, 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!


"Pascal B." <pascbr[A.R.O.B.A.S.E]hotmail[P.O.I.N.T]com> a écrit dans le
message de news: #
Bonjour Surfeur75,

Il existe un controle, très simple, pour découper une image: PictureClip

Exemple:

PictureClip1.Picture = LoadPicture("ImageOrigine.jpg")
PictureClip1.Cols = 5
PictureClip1.Rows = 7
For i = 1 To 35
Picture2(i)=PictureClip1.GraphicCell(i-1)
Next i

Remarque: Le control PictureClip est invisible en Run-Time


Cordialement,
Pascal

Pourquoi faire compliqué, quand on peut faire simple ? ...


"surfeur75" a écrit dans le message de


news:eH7v$
| Bonjour,
|
| Ben j'ai toujours mon problème de découpage d'image, 5*75 images à
| découper à partir d'une image d'origine.
| Principe: chargement de 'limage d'origine picture1, découpage de


picture1 en
| 35 images qui vont se loger dans les images de destination picture2(35)


[1 à
| 35], et déchargement de picture1...
| J'ai commencé sur la base de ce que m'avait indiqué notre ami "ng", mais
| manifestement ça ne répond plus, ce qu'il fait ne fonctionnant pas je
| cherche une autre voix, alors j'ai fait ce qui suit avec l'API "BitBlt"
| (mais je ne connais pas non plus), normalement ça marchera en boucle,


j'ai
| juste essayé sur 3 images, en fait, ça n'en copie qu'une, si quelqu'un a


une
| idée pour que ça marche, merci de me l'indiquer ???
|
| Option Explicit
| Private Declare Function BitBlt Lib "gdi32" ( _
| ByVal hDestDC As Long, _
| ByVal x As Long, _
| ByVal y As Long, _
| ByVal nWidth As Long, _
| ByVal nHeight As Long, _
| ByVal hSrcDC As Long, _
| ByVal xSrc As Long, _
| ByVal ySrc As Long, _
| ByVal dwRop As Long) As Long
| Private Const SRCCOPY = &HCC0020
| '
| Sub m_decoupe_Click()
| Dim cote As Long
| Dim x(35)
| cote = 1335
| Picture1.Picture = LoadPicture("ImageOrigine.jpg")
| x(1) = BitBlt(Picture2(1).hDC, 0, 0, cote, cote, Picture1.hDC, cote*0,


0,
| SRCCOPY)
| x(2) = BitBlt(Picture2(2).hDC, 0, 0, cote, cote, Picture1.hDC, cote*1,


0,
| SRCCOPY)
| x(3) = BitBlt(Picture2(3).hDC, 0, 0, cote, cote, Picture1.hDC, cote*2,


0,
| SRCCOPY)
| End Sub
| --
| @+, 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!
|
|
|
|
|
|
|
|




Avatar
Pascal B.
Salut Surfeur75,

C'est faux !. On peut utiliser des images au format JPG.
Ce que le controle n'accepte pas ce sont les images de type Metafile (WMF & EMF)

C'est le LoadPicture qui converti le fichier (GIF ou JPG) en image Bitmap.
En mémoire, l'image est toujours de type Bitmap (format de base) quelque soit son origine.

Pascal


"surfeur75" a écrit dans le message de news:
| Bonjour, merci, non, je ne peux pas pendre le pictureClip, car il
| n'accepte que des bmp, et pour ce que je fais c'est bien trop volumineux, je
| prend du jpg... Merci :o)
| --
| @+, 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!
|
|
| "Pascal B." <pascbr[A.R.O.B.A.S.E]hotmail[P.O.I.N.T]com> a écrit dans le
| message de news: #
| > Bonjour Surfeur75,
| >
| > Il existe un controle, très simple, pour découper une image: PictureClip
| >
| > Exemple:
| >
| > PictureClip1.Picture = LoadPicture("ImageOrigine.jpg")
| > PictureClip1.Cols = 5
| > PictureClip1.Rows = 7
| > For i = 1 To 35
| > Picture2(i)=PictureClip1.GraphicCell(i-1)
| > Next i
| >
| > Remarque: Le control PictureClip est invisible en Run-Time
| >
| >
| > Cordialement,
| > Pascal
| >
| > Pourquoi faire compliqué, quand on peut faire simple ? ...
| >
| >
| > "surfeur75" a écrit dans le message de
| news:eH7v$
| > | Bonjour,
| > |
| > | Ben j'ai toujours mon problème de découpage d'image, 5*75 images à
| > | découper à partir d'une image d'origine.
| > | Principe: chargement de 'limage d'origine picture1, découpage de
| picture1 en
| > | 35 images qui vont se loger dans les images de destination picture2(35)
| [1 à
| > | 35], et déchargement de picture1...
| > | J'ai commencé sur la base de ce que m'avait indiqué notre ami "ng", mais
| > | manifestement ça ne répond plus, ce qu'il fait ne fonctionnant pas je
| > | cherche une autre voix, alors j'ai fait ce qui suit avec l'API "BitBlt"
| > | (mais je ne connais pas non plus), normalement ça marchera en boucle,
| j'ai
| > | juste essayé sur 3 images, en fait, ça n'en copie qu'une, si quelqu'un a
| une
| > | idée pour que ça marche, merci de me l'indiquer ???
| > |
| > | Option Explicit
| > | Private Declare Function BitBlt Lib "gdi32" ( _
| > | ByVal hDestDC As Long, _
| > | ByVal x As Long, _
| > | ByVal y As Long, _
| > | ByVal nWidth As Long, _
| > | ByVal nHeight As Long, _
| > | ByVal hSrcDC As Long, _
| > | ByVal xSrc As Long, _
| > | ByVal ySrc As Long, _
| > | ByVal dwRop As Long) As Long
| > | Private Const SRCCOPY = &HCC0020
| > | '
| > | Sub m_decoupe_Click()
| > | Dim cote As Long
| > | Dim x(35)
| > | cote = 1335
| > | Picture1.Picture = LoadPicture("ImageOrigine.jpg")
| > | x(1) = BitBlt(Picture2(1).hDC, 0, 0, cote, cote, Picture1.hDC, cote*0,
| 0,
| > | SRCCOPY)
| > | x(2) = BitBlt(Picture2(2).hDC, 0, 0, cote, cote, Picture1.hDC, cote*1,
| 0,
| > | SRCCOPY)
| > | x(3) = BitBlt(Picture2(3).hDC, 0, 0, cote, cote, Picture1.hDC, cote*2,
| 0,
| > | SRCCOPY)
| > | End Sub
| > | --
| > | @+, 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!
| > |
| > |
| > |
| > |
| > |
| > |
| > |
| > |
| >
| >
|
|