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

WinDev Discussion :

WD2024 Poids en octet d'une variable image


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 734
    Points : 638
    Points
    638
    Par défaut WD2024 Poids en octet d'une variable image
    Bonjour,

    Quelqu'un sait-il si il est possible de connaitre le poids en octet d'un variable image ?

    J'ai testé un peu tout ce que j'ai trouvé, mais sans succès, je cherche a faire un peu comme ci-dessous, avec la fonction TailleImageOctets() qui irait bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MonImage est une Image
     
    // Chargement à partir d'un fichier
    MonImage = dChargeImage("image.png")
     
    // cêst ici que ça coince 
    trace( TailleImageOctets(MonImage) )

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 373
    Points : 9 536
    Points
    9 536
    Par défaut
    Bonjour,

    Le ftaille ne te suffit pas ?

    Sinon, si tu "colles" l'image dans un buffer et que tu utilises taille(MonBufferQuiContientUneImage) ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 878
    Points : 5 442
    Points
    5 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nTailleImage=fTaille("image.png")
    peut être
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  4. #4
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    1 045
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1 045
    Points : 2 502
    Points
    2 502
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nTailleImage=fTaille("image.png")
    peut être
    Trop tard


    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    Le ftaille ne te suffit pas ?

    Sinon, si tu "colles" l'image dans un buffer et que tu utilises taille(MonBufferQuiContientUneImage) ?

  5. #5
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 523
    Points : 10 272
    Points
    10 272
    Par défaut
    C'est le poids de la variable ou le poids de l'image dont tu as besoin ?

    Dans le premier cas, il faut utiliser Dimension,
    Dans le second fTaille.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  6. #6
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 734
    Points : 638
    Points
    638
    Par défaut
    C'est bien le poids de la variable, il n'y a pas forcement de fichier image.

    Par exemple si cela vient du presse-papier

    J'ai testé la proposition de Frenchsting en mettant mon image dans un buffer, je peux ainsi avoir le poids de l'image

    Merci à tous

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 964
    Points
    964
    Par défaut
    fTaille donne la taille en octets du fichier sur le disque, ce qui ne correspond pas du tout à l'occupation mémoire surtout dan le cas de fichier jpeg ou png qui sont compressés.

    Une image, quel que soit sont format, est converti en bitmap une fois chargée en mémoire.
    L'occupation mémoire dans le cas d'une image 32-bit (avec canal alpha) correspond donc à : largeur x hauteur x 4

  8. #8
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 734
    Points : 638
    Points
    638
    Par défaut
    Une image, quel que soit sont format, est converti en bitmap une fois chargée en mémoire.
    L'occupation mémoire dans le cas d'une image 32-bit (avec canal alpha) correspond donc à : largeur x hauteur x 4
    Donc si je comprends bien la taille de mon buffer, si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    imgImage est une image
    bufImage est un buffer
     
    PressePapier(ImgImage) 
     
    bufImage = imgImage 
     
    Trace(Taille(bufImage))
    le trace ne me donnera pas le poids de mon image, celui qu'il prend effectivement dans une rubrique binaire de HFSQL ?

    C'est ce qu'il faut comprendre ?

  9. #9
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    1 045
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1 045
    Points : 2 502
    Points
    2 502
    Par défaut
    Il te dit que la taille en octets du fichier sur le disque, ne correspond pas du tout à son occupation mémoire.
    Ce qui est assez logique.

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 373
    Points : 9 536
    Points
    9 536
    Par défaut
    Citation Envoyé par wd_newbie Voir le message
    C'est ce qu'il faut comprendre ?
    Le format en mémoire n'est pas du tout le même que celui sur le disque. Il fut une époque, où la représentation mémoire d'une image était un BitMap. (Aujourd'hui, il semble que ce soient des formats propres à chaque logiciel). Si tu compares la taille d'un fichier au format JPEG à celle d'un fichier BMP (de la même image), tu verras l'énorme différence que cela représente.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 964
    Points
    964
    Par défaut
    Il fut une époque, où la représentation mémoire d'une image était un BitMap.
    Un bitmap, ou plus exactement un DIB bitmap, et c'est toujours le cas.

    C'est comme pour les fichiers audio, in fine (en mémoie) c'est toujours un flux audio décompresé de type WAVE (inchangé depuis 1991)

  12. #12
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 373
    Points : 9 536
    Points
    9 536
    Par défaut
    @Patrice : Merci pour l'info
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  13. #13
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 734
    Points : 638
    Points
    638
    Par défaut
    Et visiblement c'est cette taille, sans compression qui est utilisée en base de donnée

    Une image de 39ko sur le disque prend 470 ko dans HFSQL (selon le centre de contrôle)

    ça ne motive pas de mettre des images en base de donnée

    merci pour toutes ces infos

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 964
    Points
    964
    Par défaut
    En théorie vous pouvez stocker du binaire (compressé ou non) directement dans une base de données, je ne pense pas que HFSQL fasse exception.
    Dans ce cas, si vous ne maitrisez pas la programmation bas niveau, il vous suffit d'exporter le binaire dans le dossier temporaire en utilisant l'extension de fichier d'origine, pour ensuite charger l'image en mémoire et l'effacer du répertoire temporaire.

  15. #15
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 373
    Points : 9 536
    Points
    9 536
    Par défaut
    Citation Envoyé par wd_newbie Voir le message
    Et visiblement c'est cette taille, sans compression qui est utilisée en base de donnée

    Une image de 39ko sur le disque prend 470 ko dans HFSQL (selon le centre de contrôle)

    ça ne motive pas de mettre des images en base de donnée

    merci pour toutes ces infos
    D'expérience, je déconseille de stocker des binaires dans un memo. Si le nombre d'enregistrements reste(ra) faible, alors, c'est une solution acceptable. Si le nombre d'enregistrements est amené à être (très) important (> 1 centaine de milliers d'enregistrements et/ou que les binaires sont volumineux), il vaut mieux stocker les binaires dans un dossier accessible uniquement par le programme.

    Ce n'est pas un dogme. Il y a des cas dans lesquels on ne peut faire autrement, un SGBD "ultraperformant" (ex: Oracle avec un serveur qui déchire tout), etc... Mais c'est une règle que je me suis fixée et qui m'a toujours "réussi".
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  16. #16
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 734
    Points : 638
    Points
    638
    Par défaut
    Merci Frenchsting et aux autres pour toutes ces infos.

    Effectivement je pense que je vais continuer dans le sens du répertoire partagé.

    Je faisais quelques essais, car j'ai beaucoup de petit clients avec 2-3 machines dont une fait office de serveur, et souvent les réglages du partage c'est le foin

    mais visiblement mettre ces fichiers en BDD semble apporter encore plus de soucis

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

Discussions similaires

  1. Accéder aux octets d'une variable de type Extended
    Par yupyupxav dans le forum Débuter
    Réponses: 5
    Dernier message: 17/12/2014, 10h17
  2. Comment trouver le poids en octets d'une image
    Par Ptite Développeuse dans le forum Delphi
    Réponses: 3
    Dernier message: 28/10/2014, 11h31
  3. [VB6] Image en fonction d'une variable?
    Par TomIG dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/03/2006, 01h22
  4. [debutant] get image avec une variable non static
    Par laguna dans le forum Langage
    Réponses: 2
    Dernier message: 06/03/2006, 15h57
  5. [Image] Récupérer les octets d'une image
    Par Pill_S dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 02/02/2006, 22h09

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