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 :

Comparer deux fichiers Bitmap [Lazarus]


Sujet :

Lazarus Pascal

  1. #21
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Je viens de faire un petit test, j'ai créé les 3 fichiers comme tu l'as décrit sous Gimp et je les ai lu et affiché dans mon projet. Je vais t'aider en démontrant que RawImage n'est pas FINI et que des incohérences existent

    Petite capture :

    Nom : 2017-06-07_161727.jpg
Affichages : 458
Taille : 126,7 Ko


    On vois bien que TBitmap se vautre carrément là, y'a même pas besoin de regarder les informations

    [EDIT] Oups oublié d'encadrer le pixelformat aussi
    Notes également le BytesPerLine dans la description du TBitmap. C.'est la que tu veux en venir avec ton test, non ?

    [/EDIT]

    [EDIT]
    Petite info en passant les incohérences du TBitmap proviennent de la procédure de chargement des fichiers BMP de la LCL (TLazReaderDIB dans l'unité lcl/IntfGraphics) car c'est là que sont initialisés et ou modifiés certains paramètres du RawImage, comme le Depth par exemple.

    [/EDIT]
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Bref je suis très curieux de voir ton test
    J'avais dit "3 jours", ça risque d'être 3 semaines si ça continue comme ça (à lire en 2 temps, comme une histoire avec un rebondissement au milieu) :

    Nom : transparence.png
Affichages : 213
Taille : 16,9 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #23
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    j'adore la lecture des sources

    officially no alpha support, but that breaks older LCL compatebility
    oh moins comme cela tu est au courant
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    j'adore la lecture des sources


    au moins comme cela tu es au courant
    Merci, c'est une bonne tranche de rigolade, ce soir ! Mais sait-on de quand ça date ? Tant bien c'est périmé et ça a été oublié ? Tu l'as trouvé dans quel fichier ?

    Et je te (vous !) rappelle que j'ai un jour trouvé ça sur le web (tout en bas de la page), déjà posté mais faut longtemps taper sur le clou pour l'enfoncer :
    TRawImage : This object currently is subject to refactoring, don't use it in application code.
    Et là aussi on n'a pas de dates. Na-vrant !

    Bon, allez, j'y retourne, je poursuis mon petit bonhomme de chemin à base de BitmapInfoHeader et de Streams, ça avance bien
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #25
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    j'ai trouvé cette petite observation dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TLazReaderDIB.InternalRead(Stream: TStream; Img: TFPCustomImage)
    ligne 5747 pour être exact

    le code complet se trouvent ici
    n’étant pas sur que se soit la version officiel je ne peut pas te dire si ceci est encore d'actualité
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Salutations !

    On y est presque (il me reste un microscopique détail à régler, oh, c'est l'affaire de... 3 semaines ? Nan j'décon', ça devrait être vite fini -- pi faut aussi que je teste sous XP), la preuve :

    Nom : avancement.png
Affichages : 214
Taille : 316,0 Ko

    (dans la 6e ligne du mémo vous lisez LineSize (A):1200, le (A) c'est pour faire à Andnotor, merci à toi pour ta ligne de code, et pour me pousser dans mes retranchements )

    En haut à gauche l'image source avec un beau ciel, en bas à droite la même modifiée avec un M rouge, et là vous voyez le résultat de l'exécution d'un prog qui ne connait plus ScanLine et autres sacs de nœuds : tout à base de BitmapInfoHeader et TStreams !
    Voilà.

    Vous allez me dire "mais c'est quoi ce M blanc dans ton beau ciel ?"
    Ben c'est pour ça que je poste aujourd'hui : plus de technique, plus d'AV et autres SIGSEGV, plus de pf32 qui se transforment en pf24, le M blanc est là pour matérialiser la différence entre l'image originale et l'image modifiée et comme là, la seule différence c'est l'ajout d'un M, normal qu'on retrouve un M :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if aByte1 <> aByte2 then begin
      // pour mettre à jour l'image affichée, on update le stream ms
      Different := True;
      ms.WriteByte(255);
      ms.Position := ms.Position-1; // reculer d'un cran car WriteByte a fait avancer automatiq.
    end;
    Vous allez aussi me dire que le M blanc a l'air plus gros que le rouge, mais ça c'est un effet d'optique, dû au remplacement des bytes : tout byte de la copie ayant une couleur différente du byte de l'original est remplacé par 255, donc les "dégradés" (je mets des guillemets car au final ce que nous voyons comme du dégradé n'est qu'un changement de couleur pour tricher) sont directement impactés :

    Nom : compar_M.png
Affichages : 205
Taille : 3,2 Ko

    Et je me rends compte à l'usage que ce n'est peut-être pas une bonne idée de faire ainsi. Mais je n'ai pas d'autres idées...
    Celle-ci m'était venue car il me semble avoir déjà vu ce genre de comportement, et comme ce qui m'intéresse, in fine, c'est de comparer l'action de filtres de redimensionnement (Lanczox, Mitchell, etc.) sur une image, je m'étais dit qu'il me fallait "voir" là où le filtre agissait.
    Au plus j'y pense, au plus je l'écris, et au plus je trouve que c'est une mauvaise idée.

    Me demande si je ne vais pas faire un système où les deux images sont exactement à la même place et un simple clic sur un simple bouton (ou autre) affichera l'une ou l'autre : l'œil captera la différence, et le cerveau fera le reste, un peu comme ici, tout en bas de la page.

    D'autres idées, remarques, commentaires ?


    Citation Envoyé par anapurna Voir le message
    n’étant pas sûr que ce soit la version officielle je ne peux pas te dire si ceci est encore d'actualité
    6669 lignes pour toi, 6649 pour mon vieux Laz 1.4.0 (flemme de démarrer les machines virtuelles pour voir des versions plus récentes), n'ayant pas d'outil pour chercher les différences dans les textes, je me suis contenté de chercher le mot "officially" et je le trouve ligne 5722 chez moi, avec le même bloc de code entre ta version (qui doit être la dernière) et la mienne (qui date de Mathusalem).
    Les fichiers n'étant pas versionnés (vraiment pénible, ça, faudrait leur dire), on n'en saura pas plus.

    Chose intéressante, c'est que ce fichier s'appuie pas mal sur les... BitmapInfoHeader et streams, hé oui ! : TheStream.Seek(StreamStart + BIH.biSize, soBeginning); (ligne 5759 chez moi).


    Suis pas libre c't'aprème...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Me demande si je ne vais pas faire un système où les deux images sont exactement à la même place et un simple clic sur un simple bouton (ou autre) affichera l'une ou l'autre : l'œil captera la différence, et le cerveau fera le reste, un peu comme ici, tout en bas de la page.

    D'autres idées, remarques, commentaires ?
    Bon, on dirait que ça ne vous a pas beaucoup inspiré, cette histoire...

    Et avec une image (enfin, 3 : l'original, le même modifié avec le M rouge, et juste les différences en blanc) c'est mieux ? Désolé pour le massacre de Lena par la compression Gif, je ne contrôle pas cet aspect des choses :

    Nom : comparator.gif
Affichages : 307
Taille : 86,6 Ko

    Perso je préfère.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

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

    ça avance, et drôlement bien je trouve !
    En théorie c'est fini, bientôt le zip pour les gens intéressés, pour les faire patienter un autre gif (désolé, Lena -- on dirait qu'elle a une maladie de peau, la pauvrette, ) où se succèdent une image bmp puis la même modifiée avec un M rouge puis l'indication des différences (M blanc) puis le même fichier enregistré en jpeg (qualité 100 %), puis le jpeg modifié (M mauve) et enfin les différences jpeg et on voit bien les artefacts de ce type de compression.

    Nom : compars.gif
Affichages : 278
Taille : 233,6 Ko
    (un microscopique bug est présent tout en bas à gauche, découvert grâce au gif, justement, et corrigé, pas de panique )

    Il me reste deux bricoles à voir :
    • certains bitmaps que j'ai générés avec The Gimp embarquent une information de transparence même en pf24bit, que je n'arrive pas à trouver mais que le TImage est capable d'afficher si je lui bascule .Transparent := True; un mystère...
    • tout tester sous XP.


    MP à tourlourou, s'il passe par là : ai trouvé une petite unité Exif qui, en trente secondes (le plus long a été de saisir la proc de récup des infos), m'a trouvé tout ça dans une 'tof shootée par le vieux Canon de mon fils :
    Code text : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Valid : Yes
    ImageDesc : 
    Make : Canon
    Model : Canon EOS 450D
    Orientation : 1
    OrientationDesc : Normal
    Copyright : 
    DateTime : 2013:06:30 16:41:04
    DateTimeOriginal : 2013:06:30 16:41:04
    DateTimeDigitized : 2013:06:30 16:41:04
    UserComments : 
    Software : 
    Artist : 
    Exposure : 1/50 seconds
    ExposureProgram : 3
    ExposureProgramDesc : Normal Program
    FStops : 8.0
    ShutterSpeed : 1/49 seconds
    Aperture : 6.0
    MaxAperture : 
    CompressedBPP : 
    PixelXDimension : 176
    PixelYDimension : 32
    XResolution : 72
    YResolution : 72
    MeteringMode : 2
    MeteringMethod : Center Weighted Average
    LightSource : 0
    LightSourceDesc : 
    Flash : 16
    FlashDesc : No Flash
    ISO : 100
    Elle est cachée là, la coquine
    Bon, c'est en teuton mais il n'y a pas de souci

    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  9. #29
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    Hello, unité EXIF bien vue, merci !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

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

    vous avez vu ? J'ai coché , et on n'y a passé que 8 jours !

    Nom : final.png
Affichages : 209
Taille : 198,7 Ko

    Pour réaliser cette magnifique image, voici donc un paquet-cadeau testé sous Linux 32bits et XP sp2, avec deux vieilles versions du couple FPC/Laz, ça compile et ça fonctionne : [EDIT] fichier_supprimé_par_moi
    Le fichier posté hier a été remplacé (détails dans le post suivant) par celui-ci : comparimgs2.zip
    [/EDIT]

    Le zip est un peu gros, c'est parce qu'il embarque les fichiers image que j'ai utilisés. Et vous pourrez lui faire "Clic droit / Extraire ici" car j'ai prévu un dossier parent qui enveloppe tout.

    Quelques détails et précisions :
    00- Oublié de dire que la chose ne gère que les .bmp et les .jpg, ça se voit vite en examinant le code mais ça ne coûte pas plus cher de prévenir avant,

    0- Oui, il y a une case à cocher "1 fic" pour zapper toute la partie "ouverture du second ficher et comparaison des datas", ça permet de vérifier viteuf' qu'un fichier s'ouvre bien.

    1- La chose a été vérifiée concernant les fuites mémoire : tout est bon.

    2- Structure des noms de fichiers-image :
    Code text : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    largeur x hauteur x pixelformat    = original sans modif
    largeur x hauteur x pixelformat_M  = original modifié
    largeur x hauteur x pixelformat_A  = original avec canal alpha (32 bits)
    largeur x hauteur x pixelformat_AA = original avec canal alpha (32 bits) et valeur modifiée, à voir avec un éditeur hexa (derniers pixels, les autres sont introuvables)
    largeur x hauteur x pixelformat_T  = pour jouer avec la checkbox "Transparence"
    3- Si vous voulez d'autres images pour tester, il existe ce site : https://testimages.org/

    4- Structure de l'unité unit1 :
    • au début les machins relatifs à la fiche : Create, Destroy, WindowStateChange et Resize
    • au milieu le cœur de l'action : le Timer pour le zoom et le bouton btnOpen qui contient tout le taf (une main routine et 5 sous-routines incrustées dans la partie var)
    • à la fin les fonctions des boutons annexes (choix de l'image affichée [si multi], zoom on/off, transparence on/off)
    • et à la fin de la fin, un bonus, et des vieilles notes.

    5- Concernant l'affichage du mémo sous XP (chose curieuse, les résultats sous XP utilisent deux machines virtuelles créées depuis la même source et pourtant le rendu du texte n'est pas le même -- go figure...), me suis rendu compte après la copie d'écran que ça pouvait être correct (mais vraiment petit -- là on est à 6, plus grand et les lignes vont se dédoubler dessous, très moche et pas confortable) avec "Courier New", 'fin bon, z'êtes des grands garçons je vous laisse gérer ça.
    Nom : compar_memo_2xp_lin.png
Affichages : 210
Taille : 29,4 Ko

    6- Il reste un (microscopique) souci, que je n'arrive pas encore à cerner : certaines images .bmp ont un comportement curieux quand j'active la transparence du TImage qui les affiche :
    Nom : compar_transp_bmp24.png
Affichages : 265
Taille : 172,2 Ko
    J'en ai mis une dans le paquet, vous verrez bien...

    Que dire d'autre ? Que je retourne à ce qui a motivé ce projet et ce post (je fais comme les procs et les routines : je dépile, ), à savoir l'étude des filtres de resampling (anapurna, je n'oublie pas ton zip).

    Merci à tous pour les coups de main, astuces, formules magiques et autres incantations,

    Yves, tu trouveras dans le bonus comment récupérer les données Exif.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #31
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut Jp, sympa, les streams qu'elle joie ! j'aime bien comment tu les as utilisés pour "contourner" le TBitmap, simple et efficace. La pipette avec le zoom excellent.

    Sinon il semblerai que les fichiers suivant soient en réalité des 24bits et non des 32bits

    Nom : 2017-06-12_225934.jpg
Affichages : 203
Taille : 26,8 Ko

    J'ai les même infos avec mon projet au cas ou.

    mais pourquoi certains bmp24 ont de la transparence ? Mystère...
    Tu aurais un fichier ou 2 pour tester ?

    ha oui, j'allais oublié juste le truc pour avoir un affichage correcte avec la transparence avec les BMP faut que tu "pre-multiplis" tes valeurs, comme on en à déja discuté.

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Yop !

    [EDIT] j'ai mis à jour le post d'hier matin, je laisse cependant le fichier avec les 2 nouveaux .bmp ici pour ceux qui auraient téléchargé hier le mauvais .zip. Merci encore à BeanzMaster pour sa vigilance [/EDIT]

    Citation Envoyé par BeanzMaster Voir le message
    Salut Jp, sympa, les streams quelle joie ! j'aime bien comment tu les as utilisés pour "contourner" le TBitmap, simple et efficace. La pipette avec le zoom excellent.
    Merci pour tes tests, tes compliments et ton coup d'œil de lynx, ou de sioux ! Bien vu les bmp32 qui sont des 24...


    Citation Envoyé par BeanzMaster Voir le message
    Sinon il semblerait que les fichiers suivants soient en réalité des 24bits et non des 32bits
    Je mérite des baffes !
    Dans ce zip, les 2 fichiers incriminés, en attendant que je régénère une archive complète : 2bmp_32bits.zip


    Citation Envoyé par BeanzMaster Voir le message
    mais pourquoi certains bmp24 ont de la transparence ? Mystère...
    Tu aurais un fichier ou 2 pour tester ?
    Il y en a un, le 200x150x24_T.bmp

    Citation Envoyé par BeanzMaster Voir le message
    ha oui, j'allais oublier juste le truc pour avoir un affichage correct avec la transparence avec les BMP faut que tu "pre-multiplies" tes valeurs, comme on en a déjà discuté.

    A+
    Aucun souvenir ! Tu peux me rafraîchir la mémoire ?

    Merci, et encore désolé pour l'erreur sur ces deux fichiers.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  13. #33
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Yop !

    [EDIT] j'ai mis à jour le post d'hier matin, je laisse cependant le fichier avec les 2 nouveaux .bmp ici pour ceux qui auraient téléchargé hier le mauvais .zip. Merci encore à BeanzMaster pour sa vigilance [/EDIT]


    Merci pour tes tests, tes compliments et ton coup d'œil de lynx, ou de sioux ! Bien vu les bmp32 qui sont des 24...



    Je mérite des baffes !
    Dans ce zip, les 2 fichiers incriminés, en attendant que je régénère une archive complète
    Pas de soucis Mais non , ne soit pas si dure avec toi même

    Citation Envoyé par Jipété Voir le message
    Il y en a un, le 200x150x24_T.bmp
    Citation Envoyé par Jipété Voir le message
    Aucun souvenir ! Tu peux me rafraîchir la mémoire ?
    Il y a un poste(s) ici, la et la
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Merci pour le retour.
    Citation Envoyé par BeanzMaster Voir le message
    Il y a un poste(s) ici, la et la
    Vu.
    Les liens 2 et 3 c'est le même,

    Et si je comprends tout bien, cette histoire de multiplication concerne le système d'affichage, et tu noteras que je n'interviens pas dessus : je me contente de passer les .bmp aux TImages, à charge pour eux de s'en dépatouiller.

    De la même manière, quand tu dis
    Citation Envoyé par BeanzMaster Voir le message
    Donc je pense que Gimp applique ce principe en sens inverse lors de la sauvegarde.
    non seulement je n'en sais rien mais en plus je n'ai aucun pouvoir là-dessus.

    Ça va donc rester en l'état, en attendant le jour improbable où je referai des manips qui généreront un fichier qui fait réagir l'option .Transparent du TImage.
    Mais je ne sais pas comment j'ai fait, la première fois !

    Ce qui me laisse perplexe, c'est quand tu écris
    Citation Envoyé par BeanzMaster Voir le message
    Mystère résolu ! un fichier Bitmap 32bit il faut l'afficher avec transparence pour qu'il puisse être rendu correctement.
    car moi je constate qu'en affichant la transparence du TImage, le fichier 200x150x24_T nous montre certaines parties moches, alors que c'est bien un pf24bit !

    Nom : compar_transp_bmp24.png
Affichages : 237
Taille : 172,2 Ko

    (ce n'est pas exactement celui-là, ça c'est une vieille copie d'écran, mais le 200x150 se comporte tout pareil. -- Ne pas tenir compte de ce qu'on devine dans le mémo)


    Un dernier point, que je m'étais noté dans un coin et que je partage avec vous :
    Dans The Gimp, si on fait "Fichier / Nouvelle image" et qu'on n'active pas le canal Alpha, l'export RVB donne des couleurs ternes.

    Il faut partir d'une image créée avec canal Alpha (couleurs OK à l'export en mode 32) et changer cette option (--> supprimer le canal Alpha) pour avoir de bonnes couleurs dans ce mode.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  15. #35
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Merci pour le retour.

    Vu.
    Les liens 2 et 3 c'est le même,

    Et si je comprends tout bien, cette histoire de multiplication concerne le système d'affichage, et tu noteras que je n'interviens pas dessus : je me contente de passer les .bmp aux TImages, à charge pour eux de s'en dépatouiller.
    De la même manière, quand tu dis

    non seulement je n'en sais rien mais en plus je n'ai aucun pouvoir là-dessus.

    Ça va donc rester en l'état, en attendant le jour improbable où je referai des manips qui généreront un fichier qui fait réagir l'option .Transparent du TImage.
    Mais je ne sais pas comment j'ai fait, la première fois !

    Ce qui me laisse perplexe, c'est quand tu écris
    car moi je constate qu'en affichant la transparence du TImage, le fichier 200x150x24_T nous montre certaines parties moches, alors que c'est bien un pf24bit !
    Oups mal copié le 3eme
    J'ai fais le test avec ton prog. c'est plutot chelou comme comportement
    Je n'ai pas essayé en forçant la transparence. Je ferai des tests la je ne peux pas. Mon projet subit quelques changements dans sa base, je suis actuellement dans le flux du stream


    Citation Envoyé par Jipété Voir le message
    Un dernier point, que je m'étais noté dans un coin et que je partage avec vous :
    Dans The Gimp, si on fait "Fichier / Nouvelle image" et qu'on n'active pas le canal Alpha, l'export RVB donne des couleurs ternes.

    Il faut partir d'une image créée avec canal Alpha (couleurs OK à l'export en mode 32) et changer cette option (--> supprimer le canal Alpha) pour avoir de bonnes couleurs dans ce mode.
    Merci pour l'astuce
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    J'ai fais le test avec ton prog. c'est plutot chelou comme comportement
    Explique, tu me mets l'angoisse, là : mon programme a un comportement chelou ? Je l'aurais remarqué, quand même. Ou alors c'est uniquement avec certains fichiers ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  17. #37
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Explique, tu me mets l'angoisse, là : mon programme a un comportement chelou ? Je l'aurais remarqué, quand même. Ou alors c'est uniquement avec certains fichiers ?
    Non non pas d'inquietude je parlais juste de ce fichier 24bit et de son affichage avec ou sans la transparence.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Non non pas d'inquiétude je parlais juste de ce fichier 24bit et de son affichage avec ou sans la transparence.
    Ouuuuuuuuuuuf ! J'ai eu peur, un moment...


    Bon, une chose m'ennuyait profondément, passer mon temps avec les boîtes de dialogue d'ouverture de fichier pour naviguer parfois au fin fond de l'arborescence du système de fichiers, et le fait de devoir systématiquement passer par dessus le TImage d'affichage des différences (s'il y en avait), je trouvais ça laborieux, résultat des courses une nouvelle unité embarquant le drag'n'drop de fichiers, si si ! (merci à Gilles ), et une petite modif' de l'ihm pour cette histoire de différences, il y a donc unit1.pas et unit1.lfm dans le zip ci-joint et rassurez-vous, il n'y en aura pas d'autres, normalement (je passe à autre chose) : unit1_v2.zip
    Nom : compar_new.png
Affichages : 204
Taille : 21,5 Ko

    J'ai testé dans tous les sens, je n'ai rien trouvé qui cloche.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut Rions un peu avec la propriété Transparent du TImage
    Bonjour,

    j'avais dit qu'il n'y aurait plus de code, et pour le moment je tiens parole,
    EDIT : quoique...
    pour une utilisation (qui a parlé d'expérience , comme un peu partout depuis quelque temps ?) encore plus confortable, rajoutez-vous une ligne tout à la fin de la proc de drag'n'drop, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TMainForm.FormDropFiles(Sender: TObject;
      ...
      btnOpenClick(nil);
      MainForm.BringToFront; // <-- pour que la fenêtre se réaffiche par-dessus l'explorateur après le drop
    end;
    /EDIT


    Je fais du ménage dans mes vieux fichiers, je retrouve ce joli dégradé et une intuition me pousse à le drag'n'droper (que du bonheur ce truc !) dans mon nouvel outil, et bien m'en a pris :

    Nom : transpar.gif
Affichages : 259
Taille : 64,6 Ko

    Alors cette fois c'est le rouge (à gauche toute, 255 0 0) qui marque la couleur de la transparence, mais d'où le TImage sort-il cette information ?
    Car si sans fermer le prog je lui drag-n-drope le 200x150x24_T, cette fois c'est le gris 84 84 84 qui devient la couleur de la transparence.
    C'est enregistré dans les fichiers ? Où ?
    Je rappelle que ces deux fichiers sont en pf24bit, et qu'il n'y a donc aucune info de transparence dans le TBitmapInfoHeader...

    J'ai fouillé dans d'autres fichiers, et j'ai découvert un Rouge pas franc (255 17 77), un gris 169 169 169, un bleu 127 255 255, bref, ça a l'air aléatoire mais, j'y pense tout d'un coup, on dirait que ça part toujours d'en bas à gauche...

    J'ai fait un test avec une image de carrés colorés dont celui en bas à gauche était bleu et transparent en activant la case : je l'ai édité pour remplacer ce bleu par du jaune, il y avait un autre carré jaune ailleurs, et maintenant les deux deviennent transparents en fonction de l'état de la case à cocher.

    Voilà.
    C'est une info qu'on a tendance à oublier : si on active la transparence du TImage, celui-ci détermine la couleur transparente en se basant sur celle du pixel en bas à gauche, si on ne précise pas TransparentColor := ...;.
    Difficile à détecter avec les images de test 400x300 "Lena" car le pixel en question est... blanc ! Et blanc ou rien_sur_fond_blanc c'est un peu pareil,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Bonjour,
    Citation Envoyé par Jipété Voir le message
    j'avais dit qu'il n'y aurait plus de code, et pour le moment je tiens parole,


    Microscopique cafouillage lors du drag-n-drop de 2 fichiers (découvert par l'utilisation intensive des filtres -- tout sert à tout, dans la vie)...

    J'en profite pour vous signaler qu'il existe une option en cas d'images différentes : si vous faites afficher les différences, vous pouvez sauvegarder cette images par "Clic droit / Enregistrer cette image sous..."

    Le zip de juste unit1.pas et unit1.lfm : unit1_v4.zip
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. comparer deux fichier .xls
    Par oursquetaire dans le forum Excel
    Réponses: 6
    Dernier message: 06/07/2006, 16h52
  2. [JDOM] Comparer deux fichiers XML en Java
    Par calimero2611 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 30/06/2006, 11h19
  3. Comparer deux fichier
    Par Taz_8626 dans le forum Langage
    Réponses: 3
    Dernier message: 20/06/2006, 11h46
  4. comparer deux fichiers avec une api windows
    Par sweetdreamer dans le forum Windows
    Réponses: 4
    Dernier message: 25/05/2006, 22h10
  5. Fonction c qui compare deux fichiers ???
    Par babyface dans le forum C
    Réponses: 4
    Dernier message: 19/11/2005, 13h07

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