Copier un tableau dans un autre le plus rapidement possible

Signaler
Messages postés
289
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 février 2009
-
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
-
Je pense que le titre est assez expressif :p J'aurai voulu savoir
comment copier un tableau à 3 dimension (1 to 4,1 to 64,1 to 64) dans
un autre tableau de dimension (1 to 4,1 to 800,1 to 600) et tout ca le
plus rapidement possible. Attention, je désir copier le premier à un
endroit précis du second.





Voici le code que j'utilise actuellement :



' Intialisation des coordonnées et des buffers

' --------------------------------------------

RealY = GetRealY(iY) - TexPicture.Height

iY = RealY



iXBuffer = 1

iYBuffer = 1

' --------------------------------------------



' Vérification des coordonnées

' ------------

If iX = 0 Then

iX = 1

End If



If iY = 0 Then

iY = 1

End If

' ------------



Do



Do



' Si les coordonnées sont correctes : On met nos couleurs dans le tableau principale

'
----------------------------------------------------------------------------------------------------------------------------------------------------

If RealY >= 1 Then



If
TexBitArray(Green, iXBuffer, iYBuffer) <> 255 And
TexBitArray(Red, iXBuffer, iYBuffer) <> 0 And TexBitArray(Blue,
iXBuffer, iYBuffer) <> 0 Then


bArray(Red, iX, RealY) = TexBitArray(Red, iXBuffer, iYBuffer)


bArray(Green, iX, RealY) = TexBitArray(Green, iXBuffer, iYBuffer)


bArray(Blue, iX, RealY) = TexBitArray(Blue, iXBuffer, iYBuffer)

End If



End If

'
----------------------------------------------------------------------------------------------------------------------------------------------------



iYBuffer = iYBuffer + 1

RealY = RealY + 1



' On quitte si l'on est en dehors de l'écran

' ------------------------------------------

If RealY >= Pic.Height Then

Exit Sub

End If

' ------------------------------------------



Loop Until iYBuffer >= TexInfo.bmiHeader.biHeight





If iX >= Pic.Width Then

Exit Sub

End If



iYBuffer = 1

iXBuffer = iXBuffer + 1



iX = iX + 1



RealY = iY



Loop Until iXBuffer >= TexInfo.bmiHeader.biWidth



End Sub



Merci d'avance

-=Ar$£nik=-

1 réponse

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
23
faut le faire Ligne par Ligne parce que les adresses ne suivent pas

mais pas de test possible sur la validité des couleurs







x = débutX

y = débutY

For i = 1 To 64

CopyMemory bArray(1, x, y), TexBitArray(1, 1, i), 4 * 64

y = y + 1

Next


Daniel