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

VBA Access Discussion :

Afficher des images miniatures dans un état Access


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Afficher des images miniatures dans un état Access
    Bonjour,

    j'ai un problème avec du code Visual Basic dans Access.

    j'ai une base de données Access complètes avec des infos et un lien sur une image.

    Sur un état, j'imprime des champs ainsi que l'image, mais en petit format (type vignette).

    Ces images sont des images à haute définition (2-5Mb) et lorsque je les imprime dans cet état, il y en a un certains nombres et elles ne s'affichent pas toutes dû à la taille du fichier final.

    Mon idée est de réduire ces images avant de les envoyer dans mon état. Mais je n'y arriva pas !

    Voici le code à l'intérieur de mon état pour imprimer chaque image (sans réduction) :
    • im1 : est mon image dans l'état
    • TTAPicture : est le chemin de l'image a afficher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
      If IsNull(Me![TTAPicture]) Then
        Me![im1].Picture = ""
        Me![im1].Visible = False
      Else
        Me![im1].Picture = Me![TTAPicture]
        Me![im1].Visible = True
      End If
    End Sub
    Voici le code que je désire implémenter, mais qui ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
      Dim im As System.Drawing.Image 
      If IsNull(Me![TTAPicture]) Then
        Me![im1].Picture = ""
        Me![im1].Visible = False
      Else
        im = System.Drawing.Bitmap.FromFile(Me![TTAPicture])
        Me![im1].Picture = im.GetThumbnailImage(120, 120, Nothing, Nothing)
        Me![im1].Visible = True
      End If
    End Sub
    La fonction GetThumnailImage est dans la DLL system.drawing.dll (Il faut charger le .net framework). Je l'ai référencé dans mon code Access (Outils/Références)

    http://msdn2.microsoft.com/fr-fr/library/system.drawing.image.getthumbnailimage(VS.80).aspx

    Merci de m'aider...

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    En lisant attentivement l'article MSDN et surtout la phrase :

    Si vous demandez une grande image miniature (par exemple, 300 x 300) à partir d'un Image qui a une miniature incorporée, la qualité de l'image miniature risque d'être fortement altérée. Il serait préférable de mettre l'image principale à l'échelle (au lieu de mettre la miniature incorporée à l'échelle) en appelant la méthode DrawImage.
    On en déduit que l'image doit avoir une vignette incorporé. C'est pour cela que le MSDN fournit le code suivant (C sharp):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public bool ThumbnailCallback()
     {
     return false;
     }
     public void Example_GetThumb(PaintEventArgs e)
     {
     Image.GetThumbnailImageAbort myCallback =
     new Image.GetThumbnailImageAbort(ThumbnailCallback);
     Bitmap myBitmap = new Bitmap("Climber.jpg");
     Image myThumbnail = myBitmap.GetThumbnailImage(
     40, 40, myCallback, IntPtr.Zero);
     e.Graphics.DrawImage(myThumbnail, 150, 75);
     }
    Qui crée la vignette.

    Je pense que les vignettes ne doivent pas être créées.

    Mes compétences s'arrêtent là pour l'instant.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour Loufab,
    Merci pour ta réponse. En fait, je n'ai pas toujours une image jpeg.

    Mon problème majeur est d'implémenter le dode C ou vb.net en vba pour access. Je suis un peu perdu : est-ce que je référecie la bonne dll, est-ce que je dois déclarer les fonction ? etc...

    Merci pour votre aide

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bjr,

    On peut utiliser gdi pour redimensionner l'image avant de l'injecter dans le contrôle.

    A tester :
    http://www.developpez.net/forums/sho...t=image+taille

    (je n'ai pas eu de retour sur le précédent message mais ça devrait marcher)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Résolu
    Merci Arkham76 et Loufab pour votre aide,

    omracine

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/11/2009, 13h38
  2. impossible d'afficher des images png dans mes jsp
    Par redsonic dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 02/03/2009, 22h06
  3. afficher des images miniatures avec scroll bar
    Par mappec dans le forum Flash
    Réponses: 0
    Dernier message: 09/08/2008, 00h11
  4. [SVG] Afficher des images jpeg dans un rectangle sous firefox
    Par Spiderben dans le forum Autres langages pour le Web
    Réponses: 0
    Dernier message: 02/08/2007, 11h10
  5. [.NET][CR] Comment afficher une image blob dans un état ?
    Par moucrack dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/06/2005, 13h49

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