Copier un tableau dans un autre le plus rapidement possible

MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 - 31 janv. 2006 à 19:04
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 31 janv. 2006 à 20:02
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

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
31 janv. 2006 à 20:02
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
0
Rejoignez-nous