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

Access Discussion :

Problème inexplicable GDI+. Après compactage de la base, la rotation de certaines images ne fonctionne plus


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Problème inexplicable GDI+. Après compactage de la base, la rotation de certaines images ne fonctionne plus
    Bonjour
    Sur un access 2007 - 2010 (selon poste client), je traite l'impression en PDF (via PdfCreator) de fiches access, auquelles je viens ajouter des pièces jointes, en l'occurrence des fichiers de divers type, dont des fichiers image JPG
    Le Ghostscript de pdfcreator a un problème avec la rotation des images (il imprime les JPG à 90° sens ortho).
    Donc, je tourne les images via GDI+ open(image), puis rotate(image, 90) puis filesave(NvImage), et j'imprime chaque NvImage dans un fichier pdf séparé, puis j'assemble chaque fiche access (elle même en PDF) avec ses pièces jointes via pdf.pdf (contenu dans pdfcreator)
    Sur 315 images, j'en ai 5 qui posent problème... Lors de leur rotation, je récupère une image en noir sur fond noir, de petite taille, ou pas d'image du tout

    Le point le plus surprenant, c'est que j'ai une version ou la rotation se passe bien (les 5 images sont pivotées correctement). Après compactage de la base Access, ca ne marche plus. Une copie de la base ne fonctionne pas non plus...
    Pas moyen de faire fonctionner sauf à recharger une sauvegarde, mais plus moyen de compacter... ni de modifier le code, car en enregistrant le module modifié, la rotation de ces images ne fonctionne plus...

    Si quelqu'un à une idée...

    Merci d'avance

    lien vers 3 JPG et le bout de code...
    Boucle de traitement
    Image 1
    Image 2
    Image 3

  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 024
    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 024
    Points : 24 570
    Points
    24 570
    Par défaut
    Bonjour,
    Bon ce qui est positif c'est qu'une version passe, ce qui veut dire qu'il ne s'agit pas d'un problème d'image ou de code (de poste ?).

    Je te suggère de faire un décomp/comp (Décompilation/Compactage) sur une copie de la base qui marche. Et de refaire le test.
    Tu as la procédure ici sur mon blog :

    http://blogaccess.free.fr/?p=75


    ATTENTION !! IL FAUT FAIRE CETTE OPERATION SUR UNE COPIE.

    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut Fabrice

    Ca ne change rien... Par ailleurs, sur plus de 300 images, la plupart passent correctement.
    Les as-tu ouvertes? Les as-tu tournées ?

    Je pense à un problème de GDI et pas réellement d'Access.
    J'ai tracé le priv_rotate et la création du bitmap de destination createbitmapfromgraphics échoue pour certaines images (celles fournies pour exemple)...

    Merci en tout cas de ton aide

    LaPointe

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 024
    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 024
    Points : 24 570
    Points
    24 570
    Par défaut
    Bonjour,
    Je les ai ouverte, (plan de carrière de pierre) par contre je n'ai pas joué le code.
    Peux-tu évenutellement poster le morceau de l'appli qui traite ce sujet, ça me permettra de tester ça.

    cordialement.

    ps : as-tu testé sur différents OS et différentes Carte graphiques ?

  5. #5
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    J'ai eu ce même problème d'image noire en imprimant avec pdf creator.
    Le problème venait du fait que je dessinais avec GDI+ sur une image png transparente.
    Pour résoudre ce problème, j'imprimais avec l'imprimante virtuelle SolidPDFCreator.
    Depuis Access 2007-2010, on peut imprimer directement en PDF sans passer par PDF Creator ou une autre imprimante virtuelle et mon problème est désormais résolu.

  6. #6
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Tout d'abord, merci de vous intéresser à mon problème

    Citation Envoyé par loufab Voir le message
    Bonjour,
    Je les ai ouverte, (plan de carrière de pierre) par contre je n'ai pas joué le code.
    Peux-tu évenutellement poster le morceau de l'appli qui traite ce sujet, ça me permettra de tester ça.
    cordialement.
    ps : as-tu testé sur différents OS et différentes Carte graphiques ?
    En fait en traçant GDI+, l'image s'ouvre, mais lors de la création du nouveau bitmap (fromGraphics), celle-ci échoue.
    J'ai testé sur plusieurs postes, mais sans comprendre pourquoi il arrive que ca passe nickel dans un ACCDB et pas dans sa stricte copie.
    Pour info je n'ai plus la version ou ca passait. Après modif plus moyen de faire marcher

    Je te poste le code (je ne vois pas de balise code, mais je cherche)

    Partie traitement
    Scrfilename contient le fullname de l'image
    Code : 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
     
                               If IsImage(SrcFileName) Then
                                    SrcFileSize = FileLen(SrcFileName)
                                    Set oImg = New ClGdiPlus
                                    If oImg.OpenFile(SrcFileName) Then
                                        bImageRotated = oImg.ImageWidth < oImg.ImageHeight
                                        If bImageRotated Then
    '                                        TraceIt "", "", "Rotation de 90° horaire de l'image " & SrcFileName
    '                                        MesOn "Pré traitement des pièces jointes... " & i & "/" & .RecordCount & "  Rotation de l'image"
                                            TmpFileName = SrcFileName & ".tmp.jpg"
                                            dum = oImg.Rotate(90)
                                            dum = oImg.SaveFile(TmpFileName)
                                            dum = oImg.CloseFile()
                                            Set oImg = Nothing
                                            If FileLen(TmpFileName) < SrcFileSize * 0.4 Then
                                                Kill TmpFileName    ' on supprime le .tmp.jpg
                                                bErrRotated = True
    '                                            TraceIt "", "Erreur : Impossible d'effectuer la rotation de l'image " & SrcFileName
                                           Else
    '                                            TraceIt "", "", "", "Image modifiée enregistrée sous " & TmpFileName & "  "
                                            End If
                                            SrcFileName = TmpFileName
                                        End If
                                    End If
                                End If  ' fin pré traitement image
    Partie GDI+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Function PrivRotate(ByVal pAngle As Long, Optional pImage As String = "", Optional pKeepExifData As Boolean) As Boolean
        Dim lGraphics
        Dim lNewBitmap, lNewGraphics
     '   .......
     
        ' On cree un nouveau bitmap pour contenir l'image transformee
        GdipCreateBitmapFromGraphics lDx, lDy, lGraphics, lNewBitmap
     
    '.....lNewBitmap = 0
    '...
        GdipGetImageGraphicsContext lNewBitmap, lNewGraphics
    Ce que je veux faire est simple... Si H > W pivoter l'image à 90 sens horaire et sauvegarder dans un nouveau fichier... Si il existe une astuce pour ce faire (tester H et W, sauver sous après rotation), je suis preneur

    Citation Envoyé par marsouin_89 Voir le message
    Bonjour,
    J'ai eu ce même problème d'image noire en imprimant avec pdf creator.
    Le problème venait du fait que je dessinais avec GDI+ sur une image png transparente.
    Pour résoudre ce problème, j'imprimais avec l'imprimante virtuelle SolidPDFCreator.
    Depuis Access 2007-2010, on peut imprimer directement en PDF sans passer par PDF Creator ou une autre imprimante virtuelle et mon problème est désormais résolu.
    Je sais que toutes les applis office permettent d'imprimer en PDF depuis 2007, plus exactement d'exporter en PDF.

    En fait le prog gère des milliers de fiches, regroupées par commune. Chaque fiche à des informations saisies et 0 à n documents annexe liés (JPG, pdf, word, excel, ...).
    Je prend une commune,
    Je prend la première fiche
    J'imprime les données dans un PDF temporaire
    J'imprime chaque annexe liée à cette fiche dans un PDF tempo aussi

    J'assemble les données et les fiches jointes annexes dans un PDF
    je stamp les pages annexes en ajoutant les informations de la fiche à laquelle elles sont rattachées et les numéros de page

    Fiche suivante ...

    à la fin, j'assemble toutes les fiches assemblées dans un PDF final

    Pour imprimer TOUT type de document lié, passer par l'export Access vers PDF est un peu complexe, voir impossible

    Le seul PB que j'ai est que PDF Creator ne sais pas imprimer un JPG sans faire une rotation Ortho de 90°, ce qui m'oblige à faire un 90° horaire avant d'imprimer

  7. #7
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Traitement JPG via GDI +
    Bonjour

    Il se trouve que, compactage ou pas, il n'est pas possible de traiter certaines images dans GDI+.
    Après ouverture dans PSP (par exemple), et sauvegarde sous un autre nom dans le même format, ca fonctionne et sur l'original non...

    Une idée ?

Discussions similaires

  1. [AC-2007] erreur après compactage de la base de donnée
    Par Kisty10 dans le forum IHM
    Réponses: 12
    Dernier message: 31/01/2011, 13h32
  2. Réponses: 6
    Dernier message: 21/01/2011, 13h45
  3. Réponses: 0
    Dernier message: 04/05/2010, 18h56
  4. [AJAX] Rafraichissement après insertion dans la base
    Par xave dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/05/2007, 10h56
  5. Réponses: 3
    Dernier message: 30/06/2004, 11h09

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