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

VB.NET Discussion :

Problème d'image tronquée sur win8


Sujet :

VB.NET

  1. #21
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image Source="{Binding Barcode881, Mode=TwoWay}" Height="200"
    je ne vois rien qui parle de stretch/uniform sur cette ligne (ou alors uniform est la valeur par défaut ...)

    essaye de sauvegarder l'image sur le disque dur pour voir si elle est entière ou pas
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #22
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Uniform est bien la valeur par défaut

    Déjà testé la sauvegarde sur le disque. L'image est identique à celle affichée (entière sur desktop et tronquée sur tablette).
    Kropernic

  3. #23
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si l'image est tronquée sur le disque c'est le code qui génère l'image qui contient un bug
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #24
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    si l'image est tronquée sur le disque c'est le code qui génère l'image qui contient un bug
    J'ai tenté de m'orienter sur cette piste mais sans succès (probablement dû à mes connaissances limitées en WPF vu que je débute sur cette techno).

    Sinon, je ne sais pas pourquoi je n'ai pas vérifié cela avant mais sur mon desktop (win7), quand je vais dans les options de grossissements de l'affichage, c'est sur 100%. C'est cohérent avec le fait d'avoir l'image complète quand on met 100% aussi sur la tablette. C'est déjà ça.

    Pour en revenir au code qui génère l'image, c'est vrai que c'est du code winforms. Il utilise une instance de Graphics donc GDI+ alors que WPF est passé à DirectX si j'ai bien compris ce que j'ai lu.

    Voici ce que j'ai trouvé comme code qui, je pense, défini la taille que l'image aura :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                Dim g As Graphics = Graphics.FromImage(New Bitmap(1, 1))
     
                Dim width As Integer = (3 + 6 * 7 + 5 + 6 * 7 + 3) * settings.BarWidth + settings.LeftMargin + settings.RightMargin + CInt(g.MeasureString(code(0).ToString(), settings.Font).Width)
                Dim height As Integer = settings.BarCodeHeight
     
                If title IsNot Nothing Then
                    Dim h As Integer = CInt(g.MeasureString(title, settings.Font).Height)
                    height += h
                    top += h
                End If
     
                Dim bmp As New Bitmap(width, height, PixelFormat.Format32bppArgb)
                g = Graphics.FromImage(bmp)
    Ce n'est encore qu'une intuition (fortement conforté par différentes lectures) mais je pense que le problème pourrait venir de la méthode MeasureString.

    Et là, en écrivant, je crois que ça fait tilt (mais encore une fois, je ne fais que raisonner "logiquement", je n'ai aucun élément concret de documentation pour appuyer ma théorie).
    Je pense que MeasureString calcule la taille dans une proportion 100%. Du coup, il faudrait que j'arrive à trouver le facteur de grossissement utiliser par le device et appliquer ce ratio à la hauteur trouver par MeasureString dans le bloc If.
    Par contre, il ne me semble pas que l'image soit tronquée en largeur...
    Kropernic

  5. #25
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    measurestring a toujours été étrange oui
    après s'il n'y a pas de troncation en largeur, je pense que c'est parce qu'il utilise des marges (un code barre doit avoir suffisament de blanc à gauche et à droite) et que le facteur de grossissement n'est pas assez gros pour déclencher le problème, mais il devrait arriver aussi

    bref on en revient au point de départ, tu uilises un truc tout fait qui ne marche pas, au lieu d'essayer de le faire toi même
    certes ca demande un peu de lecture et un peu de test, mais c'est le métier qui veut ça ...
    dans le pire des cas tu peux réparer le code winforms que tu as (en trouvant le facteur de grossissement, il y a surement une api pour ca) ou l'améliorer en ne basant pas sur le measurestring pour savoir ou drawstring (stringformat permet d'écrire en bas d'une zone par exemple)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #26
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    measurestring a toujours été étrange oui
    après s'il n'y a pas de troncation en largeur, je pense que c'est parce qu'il utilise des marges (un code barre doit avoir suffisament de blanc à gauche et à droite) et que le facteur de grossissement n'est pas assez gros pour déclencher le problème, mais il devrait arriver aussi

    bref on en revient au point de départ, tu uilises un truc tout fait qui ne marche pas, au lieu d'essayer de le faire toi même
    certes ca demande un peu de lecture et un peu de test, mais c'est le métier qui veut ça ...
    dans le pire des cas tu peux réparer le code winforms que tu as (en trouvant le facteur de grossissement, il y a surement une api pour ca) ou l'améliorer en ne basant pas sur le measurestring pour savoir ou drawstring (stringformat permet d'écrire en bas d'une zone par exemple)
    C'est surtout le facteur temps qui joue.

    Si je trouve un truc tout fait qui fait le taff, je l'utilise et j'essaie de comprendre comment il fait quand j'ai le temps.

    En fait, si je regarde en arrière, j'ai créé cette discussion car je n'avais pas conscience que ce facteur de grossissement existait aussi sur mon desktop. Sinon, je pense que j'aurais été capable de faire le lien plus vite et probablement sans venir encombrer le forum.

    Quand au fait de le faire moi-même, pourquoi pas. Mais déjà que je n'ai presque jamais dessiné en winforms (donc même en winforms, je m'y prendrais probablement comme un pied), j'ose pas imaginer le résultat en WPF. Mais c'est certain qu'à terme, ce serait la solution idéale. Reste encore à voir si la méthode utilisé en WPF pour calculer la place nécessaire n'est pas aussi influencée par ce facteur de grossissement.

    Bref, je pense que je vais clore la discussion. A mon avis, on a mis le doigt sur le problème et sa solution. Cela me suffit pour l'instant.
    Kropernic

  7. #27
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    utilises la propriété picture d'un label!

  8. #28
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ah je n'avais pas vu qu'ils avaient ça les labels. Certes, cela peut être judicieux. Mais je crois que cela ne changera rien au fond du problème.

    EDIT : Je ne vois pas de propriété picture... C'est un développement sous WPF (même si y a un bout de winforms )
    Kropernic

  9. #29
    Invité
    Invité(e)
    Par défaut
    Peso j'ai rencontré le même problème,pour afficher des photo de facture (vie associative oblige), le labels adaptent limage au cadre!

    Edit: désolé Me.Label1.Image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Label Content="Label" Height="68" HorizontalAlignment="Left" Margin="76,44,0,0" Name="Label1" VerticalAlignment="Top" Width="201" Image=""/>
        </Grid>
    </Window>

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Image tronquée sur un <a href>
    Par titan_33 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 29/07/2008, 14h48
  2. Problème affichage image stockée sur disque avec oracle XE
    Par thriller86 dans le forum Débuter
    Réponses: 6
    Dernier message: 13/06/2008, 13h29
  3. Réponses: 2
    Dernier message: 11/09/2007, 11h22
  4. [débutant] problème d'image sur une form
    Par Anthony17 dans le forum Delphi
    Réponses: 3
    Dernier message: 21/11/2006, 14h49
  5. [Avertis]Problème Infobulle/Popup Onmouseover sur une image
    Par Yanos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/05/2006, 14h10

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