Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | Bug avec 2d_image_copy et 2d_image_paste | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Bug avec 2d_image_copy et 2d_image_paste Mer 30 Mar 2011 - 11:21 | |
| Je pense avoir trouvé un bug avec ces deux instructions. Je ne sais pas laquelle est concernée ou si c'est les deux. Dans certains cas, soit le transfert vers l'objet image, soit la récupération de l'objet image vers un picture pose problème. Je mets ici un petit programme qui met le problème en évidence. La description exacte est dans les commentaires, et il suffit de jouer sur la mise en commentaire des lignes 39 et 41 pour mettre le problème en évidence: - Code:
-
' Bug sur éd_image_paste et/ou 2d_image_copy ' ' Je crée un picture de 256 pixels de large (de 0 à 255). ' Je remplis ce picture d'un décradé de gris de noir à blanc. ' Je veux copier ce picture dans un autre, en effectuant une rotation d'un quart ' du picture vers la gauche. Le premier quart doit donc se retrouver à droite, ' et les 3 autres quarts à gauche. ' ' J'utilise deux IMAGE pour mémoriser les parties du picture d'origine. ' Or, je n'arrive pas à copier le rectangle (64,0):(255,60), soit les trois ' quarts de droite, en position (0,0) pour les décaler à gauche. L'effst est ' comme si la portion du picture restait en place, mais tronqué à droite ' d'un quart. C'est mis en évidence par la routine partie_droite_bug. ' ' J'ai trouvé une solution pour contourner: je copie le picture entier dans ' un IMAGE, puis je recopie cet IMAGE dans mon picture en (-63,0). Là, le ' le décalage se fait correctement, mais c'est un effet secondaire du tronquage ' de l'affichage entre -63 et 0.
' Il suffit de jouer avec la mise en commentaire des lignes 39 et 41 pour le voir.
label partie_droite_ok, partie_droite_bug, partie_gauche
dim i%
picture 10 : top 10,10 : left 10,10 : height 10,60 : width 10,255 picture 20 : top 20,70 : left 20,10 : height 20,60 : width 20,255
image 30 : image 40
2d_target_is 10 for i%=1 to 255 2d_pen_color i%,i%,i% 2d_line i%,0,i%,60 next i%
' la ligne suivante fonctionne bien ' gosub partie_droite_ok ' la ligne suivante montre le bug gosub partie_droite_bug
gosub partie_gauche
end
partie_droite_ok: 2d_target_is 10 2d_image_copy 40,0,0,255,60 2d_target_is 20 2d_image_paste 40,-63,0 return
partie_droite_bug: 2d_target_is 10 2d_image_copy 40,64,0,255,60 2d_target_is 20 2d_image_paste 40,0,0 return
partie_gauche: 2d_target_is 10 2d_image_copy 30,0,0,63,60 : ' ok 2d_target_is 20 2d_image_paste 30,255-64,0 : ' ok return
| |
| | | Invité Invité
| Sujet: Re: Bug avec 2d_image_copy et 2d_image_paste Jeu 31 Mar 2011 - 16:28 | |
| J'avais vu ton problème, mais c'est pas évident à comprendre, lorsqu'on 'ai pas l'auteur. J'ai modifié un peu pour comprendre: - Code:
-
label partie_droite_ok, partie_droite_bug, partie_gauche
dim i%
picture 10 : top 10,10 : left 10,10 : height 10,60 : width 10,255 picture 20 : top 20,70 : left 20,10 : height 20,60 : width 20,255
image 30 : image 40
2d_target_is 10 for i%=1 to 255 2d_pen_color i%,i%,i% 2d_line i%,0,i%,60 next i%
2d_pen_color 255,0,0 : 2d_line 0,59,255,59 : 2d_line 64,0,64,60 :' rajout wait 5000 ' la ligne suivante fonctionne bien ' gosub partie_droite_ok ' la ligne suivante montre le bug
gosub partie_droite_bug wait 5000 gosub partie_gauche
end ' ------------------------ partie_droite_bug: 2d_target_is 10 2d_image_copy 40, 64,0,255,60 ' dans la copie, agit comme si il mettait du blanc entre 0 et 64!
beep:wait 1000
2d_target_is 20 2d_image_paste 40, 0,0 return ' ------------------------ partie_gauche: 2d_target_is 10 2d_image_copy 30, 0,0,63,60 : ' ok 2d_target_is 20 2d_image_paste 30, 255-64,0 : ' ok return ' ------------------------ partie_droite_ok: 2d_target_is 10 2d_image_copy 40, 0,0,255,60
2d_target_is 20 2d_image_paste 40, -63,0 return C'est la copie d'image qui pose problème. Cela agit comme si les premiers 64 pixels il m'était du blanc, lorsque la copie d'image commence pas à 0. La copie devrait être le point 0 à 64 (le rectangle de copie est déplacé à 64) |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug avec 2d_image_copy et 2d_image_paste Jeu 31 Mar 2011 - 19:40 | |
| Oui, ton constat est bon. Je pense qu'il s'agit vraiment d'un bug. | |
| | | Invité Invité
| Sujet: Re: Bug avec 2d_image_copy et 2d_image_paste Jeu 31 Mar 2011 - 23:09 | |
| Oui, moi aussi.
Plus haut, un vrai charabia sur ce que j'ai mis.
Enfin, c'est de cette façon que je vois le fonctionnement du copie d'image Normalement on prend une zone, n'importe où dans l'écran, vu qu'on peut définir les coordonnées. Je ne trouve pas normal de mettre des blancs jusqu'au début de la zone à copier. C'était pas attendu. La zone devrait commencer au point de coordonnées mentionnées.
Je pense que Jack saura quoi faire. |
| | | Jack Admin
Nombre de messages : 2386 Date d'inscription : 28/05/2007
| Sujet: Re: Bug avec 2d_image_copy et 2d_image_paste Ven 1 Avr 2011 - 18:21 | |
| Il y a manifestement quelque chose qui ne va pas. Je regarde ça. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bug avec 2d_image_copy et 2d_image_paste Dim 17 Avr 2011 - 21:59 | |
| Le problème est bien dans le 2d_Image_Copy: On prélève une zone x1,y1,x2,y2. Si x1 est égal à zéro, tout va bien. Si x1 est supérieur à zéro, la zone fait bien la bonne dimension, mais les x1 premières colonnes de pixels de la zone sont remplacées par des blancs | |
| | | Contenu sponsorisé
| Sujet: Re: Bug avec 2d_image_copy et 2d_image_paste | |
| |
| | | | Bug avec 2d_image_copy et 2d_image_paste | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |