IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Bitmap transparente pour un TImage [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut Bitmap transparente pour un TImage
    Bonjour,

    J'en ai franchement marre, alors je viens vers vous pleurer sur votre épaule et partager mes misères.

    Ça commence avec le wiki de freepascal et plus précisément cette section, avec un exemple qui a l'air parfait, sauf qu'après un copier/coller dans un tout nouveau projet, voilà ce que je gagne :

    Nom : bug_wiki.png
Affichages : 263
Taille : 91,4 Ko

    Le rendu, c'est le machin noir à gauche...
    Quelqu'un aurait le courage de tester sous Windows (suggestion de mon petit doigt...) ?

    Pour que ça fonctionne (ou pas), il faut simplement poser un TImage (Image1) sur la fiche.

    Ah, attention avec le wiki, il faut être sur la page english parce que la française, beaucoup plus pauvre, n'a pas cet exemple, Nom : bah.gif
Affichages : 248
Taille : 275 octets

    PS : la seule modif entre mon code et celui du wiki, c'est le renommage du bmp et du img avec un "1" au bout, et pour en savoir plus sur l'Alphablend, va te rouler...
    Nom : help_kc.png
Affichages : 247
Taille : 26,8 Ko

  2. #2
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 477
    Points : 4 676
    Points
    4 676
    Par défaut
    Bonjour,

    Et avec un Refresh après l'assignation ça ne va pas mieux ?

    Salutations

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Yep !

    Citation Envoyé par Guesset Voir le message
    Et avec un Refresh après l'assignation ça ne va pas mieux ?
    Bien tenté mais la réponse est "non". Enfin, je suppose que c'est ça qu'il fallait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          Image1.Picture.Assign(bmp1);
          Image1.Refresh; // ajout Guesset
    Le TImage m'affiche rien ou un fond noir selon l'état de sa propriété "Transparent"...

    Et le pire du pire (je devrais pas le dire, mais au point où j'en suis...), c'est que hier à un moment en début d'après-midi, à force de trifouiller j'ai réussi à avoir les images et leurs couleurs prévues par le code !
    Mais comme un imbécile (je suis exténué, ceci explique cela), je n'ai fait ni copie d'écran ni copie du code, j'ai fait d'autres modifs pour voir si je ne rêvais pas et je me retrouve dans l'impossibilité de refaire ce que j'ai bien pu trifouiller...
    Ah, je me mettrais bien des baffes, je les mérite.

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    En plus, on n'est vraiment pas aidé !

    Quand je mets la souris sur TLazIntfImage dans la section var, ça m'affiche une grande infobulle représentant un code à utiliser par copier/coler et dont je ne vous mets que l'essentiel qui me concerne, savoir, la dernière ligne, qu'on va retrouver dans l'image suivante :
    Nom : infobulle_lazintfimage.png
Affichages : 208
Taille : 38,9 Ko

    le problème, c'est que c'est périmé leur truc ! Résultat de la tentative de compil :
    Nom : erreur_getdescription.png
Affichages : 209
Taille : 36,0 Ko

    Combien d'autres erreurs se cachent un peu partout ?

    PS : tu as fait un essai chez toi ? Il fonctionne ?
    PPS : j'ai déplacé la déclaration du bmp de var à Private, me semble bien que c'était comme ça, hier.

  5. #5
    Membre averti
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 318
    Points : 308
    Points
    308
    Par défaut
    voilà ce que j'ai sous windows 11 sans rien modifier

    Nom : Capture d'écran 2024-05-22 124144.png
Affichages : 314
Taille : 5,4 Ko

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Citation Envoyé par sematimo Voir le message
    voilà ce que j'ai sous windows 11 sans rien modifier

    Nom : Capture d'écran 2024-05-22 124144.png
Affichages : 314
Taille : 5,4 Ko
    Merci à toi.

    Au moins je suis sûr que je ne suis pas fou, juste complètement exténué parce que je n'arrive pas à retrouver ce que j'ai modifié, car ce que tu nous montres, je l'ai vu hier...


  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Citation Envoyé par Jipété Voir le message
    ... ce que tu nous montres, je l'ai vu hier...
    Merci pour l'image, je me suis permis de la réutiliser là : Wait and see...

  8. #8
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 477
    Points : 4 676
    Points
    4 676
    Par défaut
    Bonjour,

    Sous Windows, un alpha à 0 est la transparence totale, peut être est-ce l'inverse (255) sous Linux ?

    Essayer de faire un dégradé alpha pourrait être intéressant.

    Salutations

  9. #9
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Essayer de faire un dégradé alpha pourrait être intéressant.
    Des dégradés, ça doit bien faire 10 ans que j'en bricole, et comme j'en avais préparé un il y a 2 ou 3 jours,sur la base d'un vieux projet d'EFG (les anciens sauront de qui je parle) que j'ai adpaté à ma sauce, ben, j'en profite :

    les 4 fichiers dans le zip : transparence_avec_Lazarus_dans_Linux.zip
    l'explication de texte : dans un premier temps, une fois la compil réussie (mais il ne devrait pas y avoir de souci), lancer le prog en faisant bien attention à ne pas passer la souris sur la fiche (c'est juste pour l'esthétique, il n'y a pas de bombe cachée sous le dégradé, ), et utiliser uniquement les touches Page suiv. / Page préc. du clavier pour voir comment réagit le dégradé, qui s'appuie sur le trackbar.

    Démonstration avec 3 images :
    Nom : 1.png
Affichages : 167
Taille : 10,6 Ko

    Nom : 2.png
Affichages : 166
Taille : 10,3 Ko

    Nom : 3.png
Affichages : 164
Taille : 10,8 Ko

    Ensuite on peut jouer avec la souris et la glisser simplement sur le dégradé, et regarder.
    Démonstration avec 2 autres images :
    Nom : 4.png
Affichages : 163
Taille : 11,5 Ko

    Nom : 5.png
Affichages : 170
Taille : 11,2 Ko
    (tiens, je constate ce soir que la souris récupère la couleur sans prendre en compte sa transparence -- je laisse ça comme un exercice pour les lecteurs passionnés, )

    Bonne découverte,

  10. #10
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Hello,

    Citation Envoyé par Guesset Voir le message
    Essayer de faire un dégradé alpha pourrait être intéressant.
    Un truc encore plus intéressant serait que tu puisses fournir un zip avec le .pas et le .lfm du code qui fonctionne chez toi, et j'invite instamment les gens qui suivent cette discussion à voir comment ça avance (mal, de traviole), sur le forum Lazarus : https://forum.lazarus.freepascal.org...c,67368.0.html

    Faut que je m'absente ce matin,

  11. #11
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 477
    Points : 4 676
    Points
    4 676
    Par défaut
    Bonjour,

    J'ai bien un programme qui prend 2 images crées par le programme présentant un dégradé couleur et alpha (dégradé alpha horizontal pour la première et diagonal pour la seconde). Il fait la fusion dans une troisième image selon 4 techniques dont la dernière (asm sse) est juste 35 fois plus rapide que celle en pascal. C'est juste un programme de test pour apprécier (et non mesurer) les performances.

    Le test porte sur une fusion pixel par pixel. Une écriture de fusion image permettrait de gagner encore (full sse voire avx si j'ai du courage).

    J'étais prêt à joindre les sources quand je me suis rappelé que cela ne fonctionnera que sous Windows car il y a des appels assembleur sans cadre de pile qui passent donc les arguments par registre. Or les règles diffèrent selon l'OS et le mode (32 ou 64 bits).

    A défaut, je joins cependant l'exécutable (Windows bien sûr ). La fusion des deux images est répétée pendant 5 secondes pour chacune des 4 implémentations + 5s pour une implémentation bidon permettant d'apprécier les coûts de boucle, de mesure de temps et d'appel de fonction. Il y a donc 25 secondes à attendre : Blend.zip.

    Aperçu (bof mais ce n'est qu'une appli test) :

    Nom : Img_fusion.png
Affichages : 156
Taille : 92,8 Ko

    Si le code intéresse cependant, je peux le communiquer.

    Salutations

  12. #12
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Bonjour,

    et merci pour ton retour et ta proposition, et c'est là que je me rends compte que je vieillis ! Je ne sais pas pourquoi j'ai pensé que ça fonctionnait chez toi, d'où mon appel du pied.
    En fait c'est chez Sematino que ça roule bien, et comme il a précisé Windows 11, je ne l'ai pas dérangé.

    Oui, des dégradés, je sais les faire :
    Nom : 4couleurs.jpg
Affichages : 155
Taille : 35,0 Ko

    Ce que j'aurais voulu, c'est refaire fonctionner ce foutu code de la page web...

  13. #13
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 477
    Points : 4 676
    Points
    4 676
    Par défaut
    Bonjour Jipété,

    La seule chose qui change au moins par rapport à tes images est que les dégradés s'exercent sur les 4 composantes (en considérant alpha comme une composante). Ca fonctionne très bien mais je suis sous Windows. Cela n'a donc pas forcément d'intérêt dans le monde Linux. L'usage de l'assembleur booste autant les performance que les incompatibilités

    Je n'ai pas de machine Linux à part deux Raspberry (y ou ies ?) PI, mais coté confort c'est assez dissuasif. Ah, j'ai aussi depuis peu les très intéressant Milk V duo mais j'envisage surtout de les utiliser comme MCU de luxe (de toutes façons ils n'ont pas d'interface écran natif).

    Salut

  14. #14
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Bonsoir,

    Quelqu'un du forum Lazarus a trouvé une solution magnifique, et a même rédigé un rapport de bug, puisque j'ai levé un sacré lièvre, là.

    Tout est là-bas, j'ai récupéré le zip et l'ai testé, c'est parfait, opération terminée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Application C/C++ Transparente pour Utilisateur
    Par johntayback dans le forum C++
    Réponses: 22
    Dernier message: 23/06/2009, 11h30
  2. Réponses: 4
    Dernier message: 09/06/2009, 15h59
  3. Créer pour chaque TImage un fichier
    Par bhahmed dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/08/2006, 00h40
  4. image transparente pour le web
    Par jexl dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 22/02/2006, 23h49
  5. Réponses: 1
    Dernier message: 07/12/2005, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo