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 :

Diaboliques pointeurs, fonctionnement différent selon OS en 32 ou 64 bits


Sujet :

Lazarus Pascal

  1. #21
    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
    Bon, en l'état, ton code ne vaut rien : je commence par me faire jeter avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      if BmpS.PixelFormat <> pf24bit then
        raise Exception.Create('Uniquement le format pf24bit est supporté');
    or cette erreur va bloquer le reste...
    Je passe tout en 32 bits et ça progresse mais j'ai des rendus foireux genre des images mode 24 bits.

    Je repars de ta source, je rajoute BmpS.PixelFormat := pf24bit; //jpt : récupéré dans initialisations avant le contrôle, ça passe, je clique sur le bouton pour convertir mais c'est l'image source à gauche qui est convertie !
    Et toute en noir ! ! !
    Comme tu le décris dans ton dernier post, d'ailleurs.

    Donc je repasse en 32 bits, et voilà le résultat :
    Nom : agrandissement_KC.png
Affichages : 67
Taille : 152,6 Ko

    Au vu de ce type d'image, je me dis qu'il y a des pixels pas remplis, ou des RGB sur 24 bits quand on devrait avoir des RGBA sur 32 bits.

  2. #22
    Invité
    Invité(e)
    Par défaut
    or cette erreur va bloquer le reste...
    Je passe tout en 32 bits et ça progresse mais j'ai des rendus foireux genre des images mode 24 bits.
    Justement le programme demande une image RGB 24bit actuellement le code ne supporte que ce format et comme précisé avant il n'est plus toléré de changer l'image de l'entrée cette opération n'est pas saine .

    Au vu de ce type d'image, je me dis qu'il y a des pixels pas remplis, ou des RGB sur 24 bits quand on devrait avoir des RGBA sur 32 bits.
    Pour le faire fonctionner avec le format 32bit réactive le champ rgbReserved dans le code de la redéfinition de la structure tagRGBQUAD que j'avais fait pour m'éviter de me voir traquer et changer tous les noms des champs des couleurs dans le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      tagRGBQUAD = packed record
        rgbBlue: Byte;
        rgbGreen: Byte;
        rgbRed: Byte;
       // rgbReserved: Byte;
      end;

  3. #23
    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 Volid Voir le message
    Pour le faire fonctionner avec le format 32bit réactive le champ rgbReserved dans le code de la redéfinition de la structure tagRGBQUAD que j'avais fait pour m'éviter de me voir traquer et changer tous les noms des champs des couleurs dans le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      tagRGBQUAD = packed record
        rgbBlue: Byte;
        rgbGreen: Byte;
        rgbRed: Byte;
       // rgbReserved: Byte;
      end;
    Mais c'est déjà comme ça dans LCLType ligne 1328 et les 8 suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      PRGBQUAD = ^TRGBQUAD;
      tagRGBQUAD = record
              rgbBlue : BYTE;
              rgbGreen : BYTE;
              rgbRed : BYTE;
              rgbReserved : BYTE;
           end;
      TRGBQuad = tagRGBQUAD;
      RGBQUAD = tagRGBQUAD;
    Je reviendrai là-dessus, là, je vais faire un tour du côté de mon prog de transparence cassé par l'OS en 64 bits dont j'ai causé ce matin.

Discussions similaires

  1. [XL-2007] Methode Follow HyperLink qui ne fonctionne pas selon l'url
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/11/2018, 17h20
  2. [Data] Rechargement de bean ne fonctionne pas selon le contexte
    Par pigalon dans le forum Spring
    Réponses: 0
    Dernier message: 26/04/2011, 11h37
  3. La procédure ne fonctionne pas selon le bouton
    Par PPN83 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/11/2010, 16h18
  4. fonctionnement différent selon IE7/Firefox
    Par marcel marie dans le forum Firefox
    Réponses: 0
    Dernier message: 19/04/2009, 09h44
  5. Réponses: 3
    Dernier message: 06/07/2007, 15h54

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