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
» Logiciel de planétarium.
Icônes à fond transparent dans Panoramic Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Icônes à fond transparent dans Panoramic Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Icônes à fond transparent dans Panoramic Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Icônes à fond transparent dans Panoramic Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Icônes à fond transparent dans Panoramic Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Icônes à fond transparent dans Panoramic Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Icônes à fond transparent dans Panoramic Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Icônes à fond transparent dans Panoramic Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Icônes à fond transparent dans Panoramic Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Icônes à fond transparent dans Panoramic Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Icônes à fond transparent dans Panoramic Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Icônes à fond transparent dans Panoramic Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Icônes à fond transparent dans Panoramic Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Icônes à fond transparent dans Panoramic Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Icônes à fond transparent dans Panoramic Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 Icônes à fond transparent dans Panoramic

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
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 : 7112
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 : 12331
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: