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

MFC Discussion :

[VC2005] Redimensionner un JPG sans le décompresser


Sujet :

MFC

  1. #1
    Membre confirmé Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Par défaut [VC2005] Redimensionner un JPG sans le décompresser
    Bonjour à tous,

    voici mon but : je voudrais légender une image JPG :

    il s'agit donc de la charger, l'afficher (ça, je sais faire).
    ensuite, il faut la placer sur un support plus grand (je n'arrive pas à être plus clair, ) pour afficher une légende en bas, et resauvegarder en jpg, dans le format agrandi, mais sans la re-compresser pour éviter les pertes.

    ex: une image jpg 100x100
    je la charge, je l'affiche dans une vue 120x120 : dans les 20 pixels du bas, j'affiche une légende, je place l'image décalé horizontalement de 10 pixels (pour qu'elle soit centrée), et je sauvegarde le tout en jpg 120x120.

    mon problème : je sais charger un jpg dans un objet BITMAP et l'afficher : mais il se retrouve donc décompressé en mémoire
    d'où recompression pour la sauvegarde d'où perte, ce que je voudrais éviter.

    Désolé si tout ça est peu clair,
    comment feriez-vous ça ?

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je ne connais rien qui gère ça nativement.
    Donc, pour ce genre de truc, il devrait t'être possible de redimensionner en préservant les blocs qui n'ont pas été affectés, mais il te faudra te plonger dans la structure même d'un fichier JPEG, pour faire tes modifs bloc par bloc...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Par défaut

    j'imaginais une solution plus simple ....
    pas sûr que je me plonge dans le JPEG de sitôt

    Merci en tous cas

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    ex: une image jpg 100x100
    je la charge, je l'affiche dans une vue 120x120 : dans les 20 pixels du bas, j'affiche une légende, je place l'image décalé horizontalement de 10 pixels (pour qu'elle soit centrée), et je sauvegarde le tout en jpg 120x120.
    Ehhh je ne vois pas autrement pour lire une JPG tu est obligé obligatoirement de la décompresser et de la recompresser..
    Je crois qu'il existe un format JPEG lossless mais la taille image sera donc plus importante..

    Est-ce que tu sais comment c'est compressé une image en JPEG ? Par un procédé par ondelettes donc tu perdras forcément de l'information..

    Essaie de passer peut-être par la classe COM IPicture mais rien n'est garanti..

  5. #5
    Membre confirmé Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Par défaut
    je pense que l'idée de Medinoc est à creuser car justement elle ne décompresse pas, elle recopie:
    c'est un peu comme si en MPEG2, tu ajoutais une séquence de quelques secondes à la fin d'un film : des logiciels font ça sans décompresser/recompresser : mais à priori, faut connaitre la structure du fichier pour en recréer un nouveau, et le remplir avec les données de l'image initiale ...

  6. #6
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Oui mais cela me parait difficile parce que la compression JPEG fait appel à la compression Huffman ne crois il ya un dictionnaire de données bref c'est assez compliqué

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je ne crois pas me souvenir qu'il y ait du Huffman.
    Selon mes souvenirs, le JPEG est constitués de blocs épurés et compressés chacun en RLE...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Retournement image jpg sans perte du header
    Par Ricquet dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 02/06/2009, 21h23
  2. [Images] Redimensionner des images sans POO
    Par gcvoiron dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/10/2007, 07h37
  3. Afficher un jpg sans passer par un fichier jpg
    Par gloubi dans le forum Langage
    Réponses: 15
    Dernier message: 14/06/2007, 16h27
  4. [GD] Redimensionner une image sans GD
    Par Halukard dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 28/11/2006, 13h30
  5. [Forum] Script upload + redimensionnement image jpg
    Par baleiney dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 03/07/2006, 11h27

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