Novembre 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 | | Calendrier |
|
|
| Picture | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Picture Mar 24 Juin 2014 - 15:26 | |
| J'ai remarqué quelque chose qui m'a étonné dans le fonctionnement du Picture: - je définis un Picture de 320 x 240 pixels - j'y charge (File_Load) une image de 640x480 pixels -> il s'affiche dans le picture le quart supérieur gauche de l'image. Normal, et pour moi le reste est perdu. - Je fais une sauvegarde de ce Picture dans un fichier bmp: File_Save -> et là, miracle, ce fichier bmp contient l'intégralité de l'image initiale 640 x 480
Je ne sais pas si c'est normal (pas trop quand même, la sauvegarde devrait être identique au Picture), mais ça peut être bien pratique quand on le sait.
D'où par exemple une petite sub qui donne les dimensions d'une image bmp ou jpg:
SUB Dimima(f$) ' Dimensions d'une image Bmp ou Jpg -> clipboard, sous la forme: wwwxhhh DIM_LOCAL pi%,vi%(8 ) pi%=970: WHILE OBJECT_EXISTS(pi%)=1: pi% = pi%+1: END_WHILE PICTURE pi%: TOP pi%,-1000: LEFT pi%,-1000 FILE_LOAD pi%,f$: FILE_SAVE pi%,"C:\TEMP\Dima.bmp" FILEBIN_OPEN_READ 9, "C:\TEMP\Dima.bmp" FILEBIN_POSITION 9,18: FILEBIN_BLOCK_READ 9,8,vi%(0) FILEBIN_CLOSE 9: FILE_DELETE "C:\TEMP\Dima.bmp" CLIPBOARD_STRING_COPY STR$(vi%(0)+256*vi%(1))+"x"+STR$(vi%(4)+256*vi%(5)) DELETE pi% END_SUB
Pas besoin de définir les dimensions du Picture, quelle que soit l'image (obligatoirement bmp ou jpg, mais ce sont les plus courantes, notamment en photo) on récupérera dans le clipboard les dimensions exactes.
Petite remarque: dans les fichiers bmp, les dimensions sont définies sur 4 octets chacune, je n'ai tenu compte que des deux premiers, ce qui couvre quand même jusqu'à des images de 65535 x 65535 pixels... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Picture Mar 24 Juin 2014 - 17:20 | |
| Je pense qu’il faut interpréter un PICTURE comme ceci : Un PICTURE est un objet dont la mission est de visualiser une image d’un fichier bitmap. Si les dimensions de l’image sont plus grandes que celles du PICTURE, cela n’a aucune importance sur la taille de l'image chargée dans le PICTURE : Le PICTURE visualise juste la partie de ses dimensions. Si, après coup, on modifie les dimensions du PICTURE, la partie visualisée se modifiera en conséquence. Bon, je sens que je ne me suis pas bien exprimé, alors tester ce - Code:
-
full_space 0 picture 1 : width 1,10 : height 1,10 : ' dimensions ridicules pouvant même être nulles FILE_LOAD 1,"C:\Users\acer\Pictures\Fond_Ecran\rose.jpg"
wait 1000 full_space 1 :' toute l'image est visible | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Picture Mar 24 Juin 2014 - 17:22 | |
| Ça c'est un truc à mettre sur le site. Bien trouvé... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Picture Mar 24 Juin 2014 - 17:34 | |
| Si c’est un truc, alors voici un autre - Code:
-
width 0,0 : height 0,50 alpha 1 : caption 1, "Salut tout le monde! Je suis content de vous voir !" wait 2000 width 0,300 : height 0,300
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Picture Mar 24 Juin 2014 - 18:05 | |
| Ce qui me chagrine un peu (pas beaucoup quand même), c'est que je définis un picture aux dimensions physiquement déterminées en pixels, et que si je sauvegarde ce picture je vais enregistrer une image d'une autre dimension que celle qui a été définie, et visible. Ça trompe.
Maintenant on peut faire des choses amusantes: - définir un petit picture, par exemple 320x240 - y charger une grande image, dont seule la partie supérieure gauche sera visible - 2D_Target du picture A partir de là, on peut adresser n'importe quelle zone en x,y de l'image, donc éventuellement bien au-delà des limites du picture, la charger dans un IMAGE (2D_Image_Copy) et la ramener en 0 du Picture (2D_Image_Paste). Et donc avec des boutons flèches par exemple parcourir la grande image en faisant apparaître la partie désirée dans la fenêtre Picture, tout ça en mémoire, l'image est chargée une fois pour toutes. Je l'ai fait, ça marche. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Picture Mar 24 Juin 2014 - 22:48 | |
| Oui et ça peut être une technique de jeu avec un scrolling quand on se déplace. On peut même générer l'image de fond à partir de petits morceaux élémentaires comme le fond beaucoup de jeu. Mais après comme ce n'est pas un scene_2D; c'est dommage on ne peut pas y jouer avec les sprites. Toutefois on peut faire tout comme en utilisant la transparence via la DLL de Klaus. Après, je n'ai pas fait de test de performance. Il faudrait le faire pour voir ce que ça donne. Je pense que compilé, on devrait pouvoir obtenir des jeux jouables correctement. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Picture Mar 24 Juin 2014 - 23:24 | |
| C'est une idée, faire varier le fond pour simuler un déplacement... mais ce serait sûrement saccadé en interprété, peut-être avec le compilateur... je ne pratique pas le scene_2d (pas étudié) mais il doit y avoir moyen de faire mieux avec. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Picture Mar 24 Juin 2014 - 23:29 | |
| - Citation :
- Je ne pratique pas le scene_2d
Moi non plus : pas de scène chez moi ! | |
| | | Contenu sponsorisé
| Sujet: Re: Picture | |
| |
| | | | Picture | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |