DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de dessin
  • Dessiner avec la fonction dTransfertVersImage
dTransfertVersImage (Exemple)
Dessiner avec la fonction dTransfertVersImage
Cet exemple permet de créer les différents tableaux de pixels correspondant au type de l'image voulu et les affiche dans des champs Image.
iImage1 est une Image
iImage2 est une Image
tabPixels est un tableau de * par * entiers sans signe sur 1
tabPixels_dImageVersTableau est un tableau de * par * entiers
nX, nY sont des entiers
nConstante est un entier
 
iImage1.Largeur = IMG_DessinInitial.Largeur
iImage1.Hauteur = IMG_DessinInitial.Hauteur
nConstante = GetOptionsTransfertVersImage()
bOpacité est un booléen = (nConstante=imgBVRA)
 
dDébutDessin(iImage1, dEffacer + (bOpacité? dAvecOpacité SINON 0))
SI bOpacité ALORS
dFond(Blanc, 0, 0, 255); dStylo(Blanc, 0, 1, 255)
dRectangle(1, 1, iImage1.Largeur, iImage1.Hauteur)
dFond(Transparent, 0, 0, 255); dStylo(RougeClair, 0, 1, 255)
dRectangle(5, 5, iImage1.Largeur-5, iImage1.Hauteur-5)
dFond(JauneClair, 0, 0, 128); dStylo(BleuClair, 0, 10, 128)
dCercle(20 ,50,iImage1.Largeur-20, iImage1.Hauteur-50)
dFond(VertPastel, 0, 0, 128); dStylo(RougeClair, 0, 10, 128)
dCercle(45, 75, 95, 125)
SINON
dFond(Blanc, 0, 0); dStylo(BleuClair, 0, 1)
dRectangle(1, 1, iImage1.Largeur, iImage1.Hauteur)
dFond(Transparent, 0, 0); dStylo(RougeClair, 0, 1)
dRectangle(5, 5, iImage1.Largeur-5, iImage1.Hauteur-5)
dFond(JauneClair, 0, 0); dStylo(BleuClair, 0, 10)
dCercle(20,50,iImage1.Largeur-20, iImage1.Hauteur-50)
dFond(VertPastel, 0, 0); dStylo(RougeClair, 0, 10)
dCercle(45, 75, 95, 125)
FIN
IMG_DessinInitial = iImage1
 
// Remplissage du tableau de pixels
SELON nConstante
CAS imgBVRA
Dimension(tabPixels, iImage1.Largeur, iImage1.Hauteur*4)
CAS imgBVR32
Dimension(tabPixels, iImage1.Largeur, iImage1.Hauteur*4)
CAS imgBVR
Dimension(tabPixels, iImage1.Largeur, iImage1.Hauteur*3)
CAS imgRVB32
Dimension(tabPixels, iImage1.Largeur, iImage1.Hauteur*4)
bufBuffer est un Buffer = dSauveImagePNG(iImage1, enMémoire)
dImageVersTableau(bufBuffer, tabPixels_dImageVersTableau, dComposanteRVB)
FIN
 
POUR nX = 1 _À_ iImage1.Largeur
POUR nY = 1 _À_ iImage1.Hauteur
SELON nConstante
CAS imgBVRA
tabPixels[nX,((nY-1)*4)+1] = iImage1.Pixel[nX,nY].Bleu
tabPixels[nX,((nY-1)*4)+2] = iImage1.Pixel[nX,nY].Vert
tabPixels[nX,((nY-1)*4)+3] = iImage1.Pixel[nX,nY].Rouge
tabPixels[nX,((nY-1)*4)+4] = iImage1.Pixel[nX,nY].Opacité
CAS imgBVR32
tabPixels[nX,((nY-1)*4)+1] = iImage1.Pixel[nX,nY].Bleu
tabPixels[nX,((nY-1)*4)+2] = iImage1.Pixel[nX,nY].Vert
tabPixels[nX,((nY-1)*4)+3] = iImage1.Pixel[nX,nY].Rouge
tabPixels[nX,((nY-1)*4)+4] = 255
CAS imgBVR
tabPixels[nX,((nY-1)*3)+1] = iImage1.Pixel[nX,nY].Bleu
tabPixels[nX,((nY-1)*3)+2] = iImage1.Pixel[nX,nY].Vert
tabPixels[nX,((nY-1)*3)+3] = iImage1.Pixel[nX,nY].Rouge
CAS imgRVB32
tabPixels[nX,((nY-1)*4)+1] = iImage1.Pixel[nX,nY].Rouge
tabPixels[nX,((nY-1)*4)+2] = iImage1.Pixel[nX,nY].Vert
tabPixels[nX,((nY-1)*4)+3] = iImage1.Pixel[nX,nY].Bleu
tabPixels[nX,((nY-1)*4)+4] = 255
FIN
FIN
FIN
 
// Tableau tabPixels vers la variable iImage2
SI nConstante = imgRVB32 ALORS
iImage2 = dTransfertVersImage(&tabPixels_dImageVersTableau, nConstante, ...
iImage1.Largeur, iImage1.Hauteur)
SINON
iImage2 = dTransfertVersImage(&tabPixels, nConstante, iImage1.Largeur, ...
iImage1.Hauteur)
FIN
IMG_TransfertVersImage = iImage2
Version minimum requise
  • Version 17
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale