Developpez.com - Rubrique Lazarus

Le Club des Développeurs et IT Pro

Apprendre à créer des transitions d'image à image avec Lazarus et BGRABitmap

Par Gilles Vasseur (3)

Le 2018-05-31 08:35:51, par gvasseur58, Responsable Lazarus & Pascal
Apprendre à créer des transitions d'image à image - Travailler avec des masques
Avec Lazarus et BGRABitmap

Bonjour à toutes et à tous !

Après avoir installé la bibliothèque BGRABitmap, bâti un logiciel de test avec la prise en charge de la vitesse d'affichage et de l'opacité, produit les premières transitions par simple recouvrement, le tutoriel proposé à présent décrit comment utiliser des masques pour des résultats encore plus intéressants.

Voici par exemple une des transitions que vous obtiendrez sans peine après avoir lu ce tutoriel :




Pour lire le tutoriel, c'est ici : https://gilles-vasseur.developpez.co...sitions/bgra3/

Que pensez-vous de ce tutoriel ?
Quelle utilisation faites-vous du graphisme avec Lazarus ?

Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation avec Lazarus.
  Discussion forum
3 commentaires
  • gvasseur58
    Responsable Lazarus & Pascal
    Bonjour Johann,

    Merci pour cette relecture attentive

    La remarque sur les pixels avec les single est tout à fait pertinente. J'avais cru bon utiliser les méthodes avec anticrénelage dès cette introduction, car le composant final utilise les single (et non les entiers comme les démos), mais c'est effectivement au détriment de l'exactitude du dessin obtenu.
    Quant à la ligne de code reproduite, elle contient en effet un oubli .

    Je corrige l'ensemble et je t'ajoute aux contributeurs.

    Encore merci à toi,

    Gilles
  • circular17
    Membre confirmé
    C'est tout naturel Gilles pour moi d'être là pour les projets en relation avec ma bibliothèque.
  • circular17
    Membre confirmé
    Bonjour et merci pour ces joli tutoriels !

    Petite remarque sur FillRectAntialias. Les procédures avec des paramètres de type Single suppose a priori que les coordonnées sont centrées sur les pixels. Donc la ligne suivante:
    Code :
    LBGRAMask.FillRectAntialias(0, 0, imgResult.ClientWidth, imgResult.ClientHeight, BGRABlack);
    n'efface pas vraiment tout. Le 0,0 ne remplit qu'à moitié les pixels en haut à gauche.

    Pour remplir tout, il faut spécifier le paramètre pixelCenteredCoordinates à false. Cela revient alors au même résultat qu'en utilisant la procédure FillRect tout court.

    Notez que dans ce cas, il s'agit d'effacer toute l'image, ce qui peut se faire avec
    Code :
    LBGRAMask.Fill(BGRABlack);
    Sinon, il me semble que dans la ligne suivante :
    Code :
    LBGRAMask := TBGRABitmap.Create(imgResult.ClientWidth, ClientHeight, BGRABlack);
    Il s'agit en fait de imgResult.ClientHeight au lieu de ClientHeight.

    Cordialement