FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Icônes à fond transparent dans Panoramic Emptypar Klaus Aujourd'hui à 1:15

» item_index(résolu)
Icônes à fond transparent dans Panoramic Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Icônes à fond transparent dans Panoramic Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Icônes à fond transparent dans Panoramic Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Icônes à fond transparent dans Panoramic Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Icônes à fond transparent dans Panoramic Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Icônes à fond transparent dans Panoramic Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Icônes à fond transparent dans Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Icônes à fond transparent dans Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Icônes à fond transparent dans Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Icônes à fond transparent dans Panoramic Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Icônes à fond transparent dans Panoramic Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Icônes à fond transparent dans Panoramic Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Icônes à fond transparent dans Panoramic Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Icônes à fond transparent dans Panoramic Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

 Icônes à fond transparent dans Panoramic

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Icônes à fond transparent dans Panoramic Empty
MessageSujet: Icônes à fond transparent dans Panoramic   Icônes à fond transparent dans Panoramic EmptyDim 30 Mai 2010 - 17:10

Cela fait un moment que j'essaye d'avoir des icônes à fond transparent pour faire des boutons image sur une barre d'outils. J'avais suggéré la commande TRANSPARENT N pour un picture, mais pour le moment, il n'y a pas de réaction. D'après mes recherches, c'est un attribut direct du canvas d'un image sous Delphi...

Alors, j'ai trouvé une façon de contourner le problème. Bon, ce n'est pas très performant, mais ça marche, et comme les boutons sont chargés en début de programme, c'est acceptable.

Le principe est le suivant:

1. on constitue des images en format BMP des boutons à utiliser, maxi 32x32 pixels, mais aussi 24x24 ou 16x16. Bien sûr, plus le format est grand, plus c'est lent...

2. avec un éditeur d'images (Paint, Irfanview, Fotofiltre, ...), on utilise la fonction "remplissage" pour remplir les espaces extérieurs avec une couleur n'existant pas dans l'image (noir, blanc, ou n'importe quoi d'autre). L'important, c'est que cette couleur touche le coin en bas à gauche de l'image.

3. on crée un picture uni_colore pour représenter la barre d'outils, et on place autant de petits picture que nécessaire sur cette barre d'outils.

4. puis, pour chaque picture, on lui charge son image BMP et on utilise le sous-programme donné ci-après. Ce sous-programme va redessiner chaque pixel ayant la couleur dite transparente avec la couleur de la barre d'outils. Le résultat est très joli. Voici le code:
Code:
label click_40, charger_icone

' On considère que, comme en Delphi et avec les API Windows,
' que le pixel du coin en bas à gauche peut représenter la couleur transparente.

' variable de travail
dim i%

' variables du sous-programme
dim r%, g%, b%, k%, rt%, gt%, bt%
dim n_objet%, n_outil%, i_icone%, j_icone%, icon_size%
dim img_file$

' barre d'outils
picture 10
top 10,10
left 10,10
width 10,400
height 10,40
color 10,255,255,0

' créer les images pour les boutons de la carre s'outils
for i%=1 to 5
picture 20+i%
top 20+i%,15
left 20+i%,15+i%*40
width 20+i%,30
height 20+i%,30
stretch_on 20+i%
2D_target_is 20+i%
next i%

' bouton pour lancer le chargement des images
button 40
top 40,60
left 40,130
caption 40,"charger"
on_click 40,click_40

end

' lancement du chargement de simages
click_40:
    for k%=1 to 5
        n_objet% = 20+k%      : ' image cible
        n_outil% = 10              : ' image barred'outils
        icon_size% = 32          : ' taille de l'image d'ORIGINE !
        img_file$ = "c:\program files\panoramic editor\open.bmp"  :  ' fichier image
        gosub charger_icone
    next k%
    return

' sous-programme de service pour le chargement d'une image
' en entrée:
'    img_file$  = nom du fichier image
'    n_outil%  = numéro d'objet de la barre d'outils
'    n_objet%  = numéro d'objet du bouton (objet picture Panoramic)
'    icon_size% = taille de l'image en pixels
charger_icone:
    file_load n_objet%,img_file$
    r% = color_pixel_red(n_outil%,width(n_outil%-2),2)        : ' prendre la couleur de la barre de commande
    g% = color_pixel_green(n_outil%,width(n_outil%-2),2)
    b% = color_pixel_blue(n_outil%,width(n_outil%-2),2)
    rt% = color_pixel_red(n_objet%,0,icon_size%)        : ' prendre la couleur transparente
    gt% = color_pixel_green(n_objet%,0,icon_size%)
    bt% = color_pixel_blue(n_objet%,0,icon_size%)
    2D_target_is n_objet%
    2D_pen_color r%,g%,b%                : ' pouvoir dessiner avec cette couleur
    for i_icone%=0 to icon_size%-1
        for j_icone%=0 to icon_size%-1
            r% = color_pixel_red(n_objet%,i_icone%,j_icone%)
            g% = color_pixel_green(n_objet%,i_icone%,j_icone%)
            b% = color_pixel_blue(n_objet%,i_icone%,j_icone%)
            if (r%=rt%) and (g%=gt%) and (b%=bt%)            : ' si le fond est transparent
                2D_point i_icone%,j_icone%                    : ' alors redessiner le point
            end_if
        next j_icone%
    next i_icone%
    return

J'ai remarqué que la commande stretch_on produit des effets inattendus. Si le picture pour dessiner le bouton fait 20x20 pixels, ce qui est une bonne taille pour un bouton de barre d'outils, et si l'image d'origine fait 32x32 pixels, il faut utiliser stretch_on avant de charger l'image. Or, à l'intérieur de l'image, ON CONTINUE A TRAVAILLER AVEC LA TAILLE D'ORIGINE, c'est-à-dire 32x32 ! Il faut donc connaître la taille d'origine de l'image dans mon sous-programme pour "chopper" le coin en bas à gauche et pour boucler sur la totalité de l'image ! C'est la raison de l'ajout de la variable icon_size%.


Dernière édition par Klaus le Lun 31 Mai 2010 - 8:37, édité 5 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Icônes à fond transparent dans Panoramic Empty
MessageSujet: Re: Icônes à fond transparent dans Panoramic   Icônes à fond transparent dans Panoramic EmptyDim 30 Mai 2010 - 17:33

Idée intéressante...
Revenir en haut Aller en bas
Invité
Invité




Icônes à fond transparent dans Panoramic Empty
MessageSujet: Re: Icônes à fond transparent dans Panoramic   Icônes à fond transparent dans Panoramic EmptyLun 31 Mai 2010 - 7:54

J'ai enfin compris.

Bon travail
Par contre tu mets 5 pictures avec un seul nom de fichier, et ça porte à confusion, vu qu'on aura qu'une seule image copiée 5 fois.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Icônes à fond transparent dans Panoramic Empty
MessageSujet: Re: Icônes à fond transparent dans Panoramic   Icônes à fond transparent dans Panoramic EmptyLun 31 Mai 2010 - 8:34

Certes, mais pour la démo, c'est suffisant. Il suffit de mettre chez soi, les noms de fichiers que l'on veut, et de rajouter les on_click sir les picture...

J'ai fait un edit sur le source, car dû certainement à un bug dans Panoramic, après les fonctions color_pixel_xxx retournent "blanc" (255,255,255) quand on le picture à charger se trouve à gauche de la barre d'outils - ca savoir pourquoi...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Icônes à fond transparent dans Panoramic Empty
MessageSujet: Re: Icônes à fond transparent dans Panoramic   Icônes à fond transparent dans Panoramic Empty

Revenir en haut Aller en bas
 
Icônes à fond transparent dans Panoramic
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Picture ou Scene2D à fond transparent
» Image de fond dans un memo.
» Icones dans Menu
» Petites icônes dans les sub_menu
» Insertion d'icônes rudimentaires (symboles) dans un objet

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: