FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Oscaribout Aujourd'hui à 19:45

» 11 (en analyse): commandes sur TAB et SUB_MENU.
par Jack Aujourd'hui à 14:10

» 10 (en analyse): Erreur sur variable locale.
par Jack Aujourd'hui à 14:05

» Métamatière, éternité et renouvellement
par Oscaribout Aujourd'hui à 12:40

» De retour...
par Yannick Hier à 15:11

» bug SEVERE fnc+sub : (35)name already defined
par Oscaribout Dim 12 Aoû 2018 - 23:55

» ajouter des blancs dans un TXT
par silverman Dim 12 Aoû 2018 - 15:38

» Encadrement
par Jean Claude Dim 12 Aoû 2018 - 11:53

» Des rectangles...
par JL35 Dim 12 Aoû 2018 - 10:53

» TRIGGER_KEY_COMBINED_TOUCH
par Jean Claude Mar 7 Aoû 2018 - 20:58

» ITEM_SELECT N,L pour synedit
par Jean Claude Mar 7 Aoû 2018 - 19:11

» amélioration panoramic
par silverman Dim 5 Aoû 2018 - 18:34

» Commande file_readln.
par Pedro Alvarez Dim 5 Aoû 2018 - 17:08

» Klaus ?
par Jack Sam 4 Aoû 2018 - 22:48

» Défragmentation du disque dur
par JL35 Sam 4 Aoû 2018 - 21:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2018
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

Partagez | 
 

 Comment afficher une image sans fond.

Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

Nombre de messages : 1131
Date d'inscription : 19/01/2014

MessageSujet: 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"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6311
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Pedro Alvarez

avatar

Nombre de messages : 1131
Date d'inscription : 19/01/2014

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6311
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Pedro Alvarez

avatar

Nombre de messages : 1131
Date d'inscription : 19/01/2014

MessageSujet: 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$
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 664
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6311
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Comment afficher une image sans fond.   

Revenir en haut Aller en bas
 
Comment afficher une image sans fond.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Répétition horizontale/verticale d'une image de fond
» Image de fond de catégorie.
» Changement d'une image de fond
» Afficher une image un plein écran
» Comment afficher toujours la bonne heure sans boucle infini?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: