| Copier l'image d'un scene3d | |
|
|
|
Auteur | Message |
---|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Copier l'image d'un scene3d Lun 16 Jan 2012 - 17:19 | |
| Bonsoir Amis panoramiciens, Je voudrais copier dans un fichier jpg ou bmp la scene3d afin de garder une image de celle-ci à un moment donné. Dans le prog sur lequel je travaille en ce moment, J'ai une routine "cliche" qui prend une photo. Jusque là, pas de problème. Mais si je désire prendre un second cliché de ma scene3d qui a changé entre temps, il me redonne la même photo que la première fois! Voici le code que j'utilise dans ma routine en mode évènementiel et appelé par un clic dans un sub menu: - Code:
-
cliche: if file_exists("c:\temp\image.jpg")=1 then file_delete "c:\temp\image.jpg" if file_exists("c:\temp\image.bmp")=1 then file_delete "c:\temp\image.bmp" cls:image 99 2d_image_copy 99,150,110,1592,842 file_save 99,"c:\temp\image.bmp" delete 99 return Soupçonnant quelquechose de pas clair avec cette commande 2d_image_copy, j'ai fait un autre petit programme pour voir ce qui se passait, et là, surprise, au lieu d'avoir la sphère et le cone, j'ai une image blanche ou plutôt avec 2 barres noires sur le coté droit et le bas de l'image. - Code:
-
full_space 0:scene3d 1:full_space 1 3d_cone 1,4,1:3d_color 1,0,75,0 3d_sphere 2,1:3d_position 2,0,2,0
image 99 2d_image_copy 99,150,110,1592,842 file_save 99,"c:\temp\image.jpg" file_save 99,"c:\temp\image.bmp" delete 99 end Alors ma question est Ou bien j'utilise mal l'instruction, ou bien elle n'est pas compatible avec le scene3d! Merci d'avance à vous de m'apporter une réponse ou peut-être une solution à mon problème! Cordialement. | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 17:22 | |
| Heu j'avais mal compris,
Je sais pas, je vais voir
Au fait, tu as fait 2D_target_is ? peut-être que ça a un rapport ? Ah non 2D_target est seulement pour un form ou un picture
EDIT : Si tu peux afficher ta scene 3D dans un picture, (j'y connais rien en 3D) alors tu pourrais la copier avec 2D_image_copy.
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 18:07 | |
| Il n'y a pas de lien entre scene2d et scene3d. Un 2d_target_is n'agit que sur un scene2d, tout comme 2d_image_copy, comme leur nom l'indique. Pour adresser un scene3d, il y a 3d_target_is. La commande File_Save permet de sauver le contenu d'objets régiliers comme des mémos etc, mais pas de scene2d ni scene3d. Il y a un moyen de charger un image dans un sprite (dans un scene2d) mais l'inverse n'est pas possible. On ne peut pas sauvegarder directement le contenu ou l'image d'un scene3d. Bon, une fois qu'on a dit cela, il faut aussi dire qu'il y a souvent un moyen de contourner les limitations. Et ici, il y en a un. Tu peux réaliser une copie d'écran à placer dans un image, puis dans un picture si tu veux, et tu peux travailler le résultat - le sauvegarder, ... L'exemple suivant crée un scene2d avec un sprite dns lequel on charge un carré rouge. Puis, on réalise une copie d'écran. Puis, pour contrôle, on affiche la copie d'écran dans un picture à droite de la scene2d: - Code:
-
scene2d 1 : top 1,30 : left 1,30 : ' crée la scene2d picture 10 : hide 10 : ' picture pour dessiner 2d_target_is 10 : ' cibler ce picture 2d_rectangle 10,10,40,40 : ' tracer un carré 2d_flood 20,20,255,0,0 : ' rempli de rouge sprite 1 : ' créer un sprite image 21 : ' et une image 2d_image_copy 21,0,0,50,50 : ' copier le dessin dans l'image sprite_image_load 1,21 : ' charger l'image dans le sprite
image 22 : ' nouvelle ima e 2d_target_is 0 : ' cibler la form 0 2d_image_copy 22,0,0,70,70 : ' copier l'écran
picture 11 : ' un autre picture top 11,10 : left 11,300 : ' placer à l'écran 2d_target_is 11 : ' cibler ce picture 2d_image_paste 22,0,0 : ' et récupérer la copie d'écran end
En choisissant les coordonnées exactes de la scene2d dans la ligne 13 pour copier l'image d'écran, on n'a que ce qui nous intéresse. J'ai pris plus large pour montrer l'effet. ET bien sûr, ceci fonctionne également avec un scene3d. En fait, ça marche avec tout. | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 18:27 | |
| Je viens de penser à un truc simple sinon, faire print Screen du clavier Tu récupères ensuite dans le presse-papier en collant dans paint. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 18:53 | |
| Si c'est pour une sauvegarde manuelle, c'est bien sûr le plus simple. Je pensais que tu avais besoin de le faire par programme. | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 19:17 | |
| Tu as raison Klaus, c'est mieux par programme | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 19:33 | |
| Bonsoir Klaus, Ton exemple fonctionne très bien sur un scene2d et j'en ai compris le principe qui au demeurant me parait un peu compliqué (car trop de manipulation). Mais je n'arrive pas à l'adapter à un scene3d, et pourtant tu m'as dit que cela était aussi possible! Moi ce que je veux faire, c'est par exemple: scene3d 1: 3d_sphere 1,1 Pouvoir enregistrer l'image de la sphère à l'écran dans un fichier bmp ou jpg. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 19:38 | |
| Ah bon ? Regarde ceci: - Code:
-
scene3d 1: 3d_sphere 1,1 image 22 2d_target_is 0 : ' cibler la form 0 2d_image_copy 22,0,0,70,70 : ' copier l'écran
picture 11 : ' un autre picture top 11,10 : left 11,300 : ' placer à l'écran 2d_target_is 11 : ' cibler ce picture 2d_image_paste 22,0,0 : ' et récupérer la copie d'écran end
| |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 19:57 | |
| Désolé Klaus, mais ça ne marche pas chez moi. Ça doit venir de ma carte graphique. Je vais essayer plus tard sur l'ordi de ma femme et on verra bien! A + | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 20:43 | |
| Etonnant. Chez moi, aucun problème. Est-ce que d'autres Panoramiciens voudraient bien tester ce petit bout de code ? Il doit afficher, à droite de la sphère dans la scene3d, l'image du quart supérieur droit de cette image, avec le bord de l'écran... merci aux bonnes volontés. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 20:57 | |
| Ca ne marche pas pour moi non plus (la sphère ne s'affiche qu'une fois et l'image copiée contient le fond d'écran) | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 21:24 | |
| Alors, il faut que Jack regarde cela, en lui donnant plus d'infos sur vos configurations. Pour moi, c'est XP PRO SP3. | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 21:44 | |
| Bonsoir Jicehel, Toi aussi tu as le même résultat que moi! Donc j'ai bien repéré un problème avec 2d_image_copy! Je pense que cela dépend du systeme, car je crois que tu as windows 7 64 bits comme moi. Ce qui est pire, c'est que dans le programme que je développe actuellement, j'obtiens quand même avec les mêmes instructions une image jpg de mon scene3d, mais quand je veux en obtenir une seconde image un peu plus tard alors que ma scene a évolué, Panoramic me rebalance la même photo que j'ai prise en premier!! Curieux! | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Copier l'image d'un scene3d Lun 16 Jan 2012 - 21:46 | |
| Klaus, merci quand même de ton aide. Tu es indispensable à nous tous! | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 0:29 | |
| D'ailleurs, juste pour compléter l'information: Si dans le programme posté ci-dessus, on remplace la ligne - Code:
-
2d_image_copy 22,0,0,70,70 par la ligne - Code:
-
2d_image_copy 22,0,0,width(0),height(0) on obtient une copy d'écran que l'on peut ensuite, au choix, passer dans le presse-papier, sauvegarder dans un *.BMP, ... Une hardcopy programmée. | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 6:59 | |
| Bonjour amis panoramiciens, Pour information, pour Jack, voici l'image que j'obtiens quand j'utilise 2d_image_copy 22,0,0,70,70 ou 2d_image_copy 22,0,0,width(0),height(0) J'ai essayé également avant de lancer l'éditeur panoramic, d'aller dans propriétés, compatibilité et de mettre sous xp service pack 3, puis j'ai lancé le même programme que Klaus, et même résultat. Donc je pense à un problème de carte graphique, mais ce qui est curieux c'est que dans mon programme que je développe, comme je l'expliquais précédement sur ce post j'obtiens une image au premier passage et au suivant toujours la même image! 2d_image_copy 99,220,110,screen_x,screen_y: c'est l'instrucrion que j'utilise dans mon prog. D'ailleurs, j'ai fait plusieurs essai. Au début à la place de y2 représenté par screen_y j'avais la valeur 842, puis je l'ai diminuée de 8 pixels en 8 pixels. Arrivé à 810, ça marchait et passée à 800, une image blanche! Tout ceci pour info. Merci de votre attention A bientôt. | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 7:35 | |
| Par programme tu peux peut-être utiliser le presse-papier et ainsi tu auras ton image^^
| |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 8:47 | |
| Bonjour Exdragon, Si tu sais faire, donne moi un exemple. Je suppose qu'il faut utiliser la commande execute pour lancer le presse papier. Moi je ne sais pas encore me servir de cette commande. J'ai essayé en voulant utiliser au début l'outil capture de windows 7 car on peut définir une zone dans une image à capturer. Le programme de l'outil capture se trouve dans Windows\system32 et s'appelle SnippingTool. Mais pas moyen de le lancer, il y a toujours erreur! Voili, voilou. | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 9:13 | |
| Le presse-papier : Sous Vista, cette commande n'existe plus. Pour l'ajouter, il suffit de copier le fichier clipbrd.exe (que vous trouviez sous Windows XP dans le dossier Windows\system32) dans le dossier Windows\system32 de votre Vista. Vous pouvez aussi télécharger ce fichier exécutable : http://www.commentcamarche.net/download/telecharger-34057455-clipboard-pour-vistapuis faire un clic droit dessus > Exécuter en tant qu'administrateur, et la commande sera ajoutée automatiquement. Ensuite essaie de le lancer avec execute() | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 10:18 | |
| Pour compléter, voici ce que j'obtiens sous XP Pro SP3: [img] [/img] A gauche la scene3d, et à droite un picture montrant le résultat de "2d_image_copy 22,0,0,70,70". | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 10:22 | |
| Indiscutablement, même sans images klaus^^ EDIT : Ah oui j'ai oublié de préciser pour execute : - Code:
-
Execute "nom_du_fichier_à_lancer.exe" ou avec paramètres : - Code:
-
Execute "nom_du_fichier_à_lancer.exe 50" 50 étant un paramètre de l'utilisateur Exemple venant de l'aide^^ | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 10:31 | |
| Bonjour Klaus, voici l'image que j'obtiens avec ton programme:[img] [/img] | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 10:34 | |
| Dans la partie de droite :
En blanc j'imagine que c'est la taille du picture et en gris la partie copiée
T'as toujours pas essayé execute ? oO | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 10:48 | |
| Effectivement, le carré gris dans la picture qui apparaît blanc, est la partie copiée. On voit bien que cette partie ne prend pas du tout l'image de la scene3d aui est visée. Est-ce qu'elle n'apparaît pas dans le canvas de form 0 sous cette version de Windows, alors qu'elle est intégrée dans le canvas sous XP ? Seul Jack pourra expliquer ce qui se passe, mais c'est peut-être une piste. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Copier l'image d'un scene3d Mar 17 Jan 2012 - 11:42 | |
| @Klaus, pour info j'obtiens le même résultat que bignono (Windows 7) | |
|
| |
Contenu sponsorisé
| Sujet: Re: Copier l'image d'un scene3d | |
| |
|
| |
| Copier l'image d'un scene3d | |
|