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 |
|
|
| Comment afficher une image sans fond. | |
| | Auteur | Message |
---|
Pedro
Nombre de messages : 1595 Date d'inscription : 19/01/2014
| Sujet: Comment afficher une image sans fond. Ven 8 Juin 2018 - 16:06 | |
| Bonjour. Je dispose de plusieurs images des planètes au format jpg, sur fond noir. Ces images sont bien entendues circulaires, le reste de l'image étant noir. Lors de la visualisation des ces images dans des objets picture, le fond noir apparaît sur l'écran. Connaissez-vous un moyen d'afficher uniquement l'image sans le fond noir ? Merci de votre aide. Le code suivant affiche bien le sprite, mais son fond noir apparaît à l'écran. Bien que la doc indique que la couleur noire soit transparente ! - Code:
-
maximize 0
picture 1 full_space 1
scene2d 2 left 2,200 top 2,200 width 2,200 height 2,200 sprite_target_is 2 sprite 3 sprite_file_load 3,"c:\b\mars2.bmp" | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une image sans fond. Ven 8 Juin 2018 - 17:17 | |
| A mon avis, ce que tu vois après avoir chargé le sprite, ce n'est pas la couleur de fond du sprite (noire), mais celle du Scene2d, qui est également noire d'origine. Mets d'abord une image de fond dans le scene2d, et le sprite se détachera bien dessus sans son fond noir de transparence. Par exemple: - Code:
-
width 0,660: height 0,520 picture 1: width 1,150: height 1,150: color 1,0,0,0 2D_TARGET_IS 1: ' juste pour créer le sprite 2d_fill_color 255,255,0: 2D_CIRCLE 75,75,50: file_save 1,"Z:\Planete.bmp" 2D_TARGET_IS 0: DELETE 1
scene2d 2 width 2,640: height 2,480 FILE_LOAD 2,"C:\GRAPH\BMP\goldgate.bmp": ' une image de fond qualconque (640x480) sprite_target_is 2 sprite 3 sprite_file_load 3,"Z:\Planete.bmp" end Si tu mets en commentaire le chargement de l'image dans le scene2d, tout est noir, sauf le sprite. | |
| | | Pedro
Nombre de messages : 1595 Date d'inscription : 19/01/2014
| Sujet: Comment afficher une image sans fond. Ven 8 Juin 2018 - 20:20 | |
| Bonsoir.
Merci pour l'info, mais je ne peux malheureusement pas utiliser cette méthode.
Ma form 0 contient un objet picture, lui-même contenant une image de fond.
Non, impossible d'utiliser en plus un scene2d. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une image sans fond. Ven 8 Juin 2018 - 21:12 | |
| Si je comprends bien, tu voudrais que ton picture se comporte comme un scene2D ? ce n'est pas prévu... Ce que je ferais personnellement (enfin, j'essaierais): - enregistrer le contenu du picture (image de fond) dans un fichier bmp provisoire - créer un Scene2D caché (HIDE) aux dimensions de l'image précédente - charger (FILE_LOAD) le Scene2D avec le fichier bmp - appliquer le sprite sur ce Scene2D à l'endroit voulu - sauvegarder le résultat (SNAPSHOT) dans un bmp - recharger le picture d'origine avec ce bmp (éventuellement supprimer le Scene2d et les bmp temporaires). Certes, ça paraît bien compliqué, et c'est sans doute lent, mais je ne vois rien d'autre si on veut utiliser un picture. C'est un peu laborieux, mais ça marche: - Code:
-
DIM f$,fi$,fs$,x%,y% f$ = "C:\GRAPH\JPG\goldgate.jpg": ' image de fond du picture fi$ = "Z:\IM.bmp": ' image de fond (copie picture) fs$ = "Z:\Planete.bmp": ' sprite
WIDTH 0,800: HEIGHT 0,600 ' CREATION DU SPRITE, POUR ESSAIS (un disque jaune...): ' picture 2: width 2,100: HEIGHT 2,100: color 2,0,0,0 ' 2d_target_is 2: 2d_fill_color 255,255,0: 2d_circle 50,50,40 ' file_save 2,fs$ ' end
PICTURE 1: WIDTH 1,640: HEIGHT 1,480 FILE_LOAD 1,f$: ' image de fond du picture SCENE2D 3: HIDE 3: WIDTH 3,640: HEIGHT 3,480: ' Scene2D provisoire et caché SPRITE 3 FILE_SAVE 1,fi$: FILE_LOAD 3,fi$ SPRITE_FILE_LOAD 3,fs$ x% = 100: y% = 50: ' position du sprite dans l'image SPRITE_POSITION 3,x%,y% SNAPSHOT 3,fi$: DELETE 3: ' sauvegarde, puis suppression du Scene2D FILE_LOAD 1,fi$: ' rechargement du Picture avec l'image modifiée FILE_DELETE fi$ END | |
| | | Pedro
Nombre de messages : 1595 Date d'inscription : 19/01/2014
| Sujet: Comment afficher une image sans fond. Sam 9 Juin 2018 - 10:25 | |
| Bonjour. Un grand merci JL35 pour ton aide. Tout fonctionne correctement, et assez rapidement de surcroît. Voici ton code remanié pour mon usage. - Code:
-
DIM f$,fi$,fs$,x%,y%
f$ = "fonds\preferes\fond1.jpg": ' image de fond du picture fi$ = "c:\a\image.bmp": ' image de fond (copie picture) fs$ = "c:\b\mars2.bmp": ' sprite
maximize 0
picture 1: full_space 1 file_load 1,f$: ' image de fond du picture scene2d 3: hide 3: width 3,width(1): height 3,height(1): ' scene2d provisoire et caché sprite 3 file_save 1,fi$: file_load 3,fi$ sprite_file_load 3,fs$ x% = 800: y% = 300: ' position du sprite dans l'image sprite_position 3,x%,y% sprite_scale 3,0.25,0.25 snapshot 3,fi$: delete 3: ' sauvegarde, puis suppression du scene2d file_load 1,fi$: ' rechargement du picture avec l'image modifiée file_delete fi$ | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Comment afficher une image sans fond. Sam 9 Juin 2018 - 10:34 | |
| @pedro le code que tu as posté dans ton premier post est correct, mais les images '.jpg' n'ont pas toujours le noir égal à : pixel rouge=0,vert=0,bleu=0. C'est surement un pb de couleur; Il n'y a que le noir pur qui est transparent. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une image sans fond. Sam 9 Juin 2018 - 14:16 | |
| Tu as raison silverman, dans un jpg les couleurs sont moins bien définies... Mais dans son exemple initial, le noir qu'on voit c'est le fond du Scene2d, qui est noir d'origine, le fond du sprite se confond avec. Et son image_sprite était bien un bmp. | |
| | | Contenu sponsorisé
| Sujet: Re: Comment afficher une image sans fond. | |
| |
| | | | Comment afficher une image sans fond. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |