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

Millie Discussion :

[Suggestion] Un Zoom plus Zen


Sujet :

Millie

  1. #21
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 189
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Les tests devaient être fait avec une ancienne implémentation de AreaAveragingScaleFilter car moi j'obtiens:

    Image de départ 3543x2362 -> image d'arrivée 800x600
    - SCALE_AREA_AVERAGING : 8.425003 ms
    - MultiStep VALUE_INTERPOLATION_BILINEAR : 105.69857 ms

    Je vais voir si on peut optimiser les choses pour le SCALE_AREA_AVERAGING dans notre ca, mais j'ai un doute.
    En cas de problème de perf, je devrais de toute façon repasser par une solution maison (comme la tienne pour le lanczos) pour pouvoir annuler en cours de route le traitement (un grand coup de molette de souris risque de poser quelques problèmes sinon)

    Car en passant avec un AreaAveragingScaleFilter, je ne crois pas pouvoir arrêter le traitement.

  2. #22
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Jack Sparrow Voir le message
    En cas de problème de perf, je devrais de toute façon repasser par une solution maison (comme la tienne pour le lanczos) pour pouvoir annuler en cours de route le traitement (un grand coup de molette de souris risque de poser quelques problèmes sinon)

    Car en passant avec un AreaAveragingScaleFilter, je ne crois pas pouvoir arrêter le traitement.
    J'aimais bien ta solution : faire un filtre rapide (SCALE_FAST) puis déclencher le calcul du filtre SCALE_SMOOTH au bout de X millisecondes d'inactivité de la molette.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #23
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    De mon côté, leur méthode semble plus rapide mais la qualité est moins bonne.

    De plus, il a tendance à planter et à faire une boucle infinie dans le while
    Je ne répondrai à aucune question technique en privé

  4. #24
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Bon, je pense que c'est bon.

    Par contre, il faut savoir qu'il faut remettre dans un BufferedImage l'image obtenu à partir du scaledInstance.
    Au premier repaint() avec une nouvelle Image, il y avait un gros freeze car le premier drawImage semble prendre du temps (pas le second).

    Par contre, ça peut faire "spé" pendant l'application d'un filtre.
    Je ne répondrai à aucune question technique en privé

  5. #25
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par millie Voir le message
    Par contre, il faut savoir qu'il faut remettre dans un BufferedImage l'image obtenu à partir du scaledInstance.
    Au premier repaint() avec une nouvelle Image, il y avait un gros freeze car le premier drawImage semble prendre du temps (pas le second).
    Hum... ca me semble louche. Le scaledInstance est déjà censé créer une nouvelle BufferedImage.

    Mais bon, sans se prendre trop la tête, tu peux juste ajouter un flag "zoom précis (plus lent)" dans les préférences pour toujours utiliser "SCALE_AREA_AVERAGING"

    Je serais sans-doute le seul a l'utiliser cette option de toutes façons


    (Edit Hors-Sujet : y a vraiment du ménage a faire dans mes filtres. Pourquoi ai-je codé Harris et Canny sous forme d'ImageOperator et pas de Plugin ? mystère )
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #26
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Tu peux déjà prendre une preview ici :

    http://humbert-florent.developpez.co...tion-2.0.1.zip

    Il y a en plus des grosses optimisations sur le filtre HSL (et quelques filtres de type PointOperator)

    Dans le menu préferences (qui devient un peu trop gros), il y a :
    Forcer zoom sur petites images pour éviter de zoomer au démarrage quand l'image rentre déjà dans le cadre
    Lisser les images et Lisser les images venant des filtres à cocher pour toi.
    Je ne répondrai à aucune question technique en privé

  7. #27
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par millie Voir le message
    Tu peux déjà prendre une preview ici :

    http://humbert-florent.developpez.co...tion-2.0.1.zip

    Il y a en plus des grosses optimisations sur le filtre HSL (et quelques filtres de type PointOperator)

    Dans le menu préferences (qui devient un peu trop gros), il y a :
    Forcer zoom sur petites images pour éviter de zoomer au démarrage quand l'image rentre déjà dans le cadre
    Lisser les images et Lisser les images venant des filtres à cocher pour toi.
    Whouua. Impeccable !! Merci Milliiiiiiiie
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #28
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 189
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    (Edit Hors-Sujet : y a vraiment du ménage a faire dans mes filtres. Pourquoi ai-je codé Harris et Canny sous forme d'ImageOperator et pas de Plugin ? mystère )
    Le système d'ImageOperator était pas mal pour les traitements qui nécessitaient de travailler d'emblée avec des double/float sur toute l'image (surtout s'ils sont lents). La conversion Image/BufferedImage devrait être beaucoup plus rapide (je ne l'ai optimisé que dans un sens pour l'instant) sous peu.

    Sinon, c'est vrai que ça n'a pas des masses d'interêt.

  9. #29
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Il semble y avoir un bug dans le calcul du zoom initial, a priori uniquement quand je suis dans le style "defaut".

    Une fois sur deux, le zoom est initialisé avec des valeurs négatives, genre -5% (image a l'envers).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #30
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 189
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Il semble y avoir un bug dans le calcul du zoom initial, a priori uniquement quand je suis dans le style "defaut".

    Une fois sur deux, le zoom est initialisé avec des valeurs négatives, genre -5% (image a l'envers).
    C'est le cas avec la version 2.0.0 aussi ?

  11. #31
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Jack Sparrow Voir le message
    C'est le cas avec la version 2.0.0 aussi ?
    Oui, je viens de tester.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #32
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 189
    Points : 268
    Points
    268
    Par défaut
    C'est effectivement peut être possible avec certaines images de taille petite.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double zoomFactor = Math.min(((double) imagePanel.getWidth()-20.0)/imageBean.getBufferedImage().getWidth(), 
    				((double) imagePanel.getHeight()-20.0)/imageBean.getBufferedImage().getHeight());

  13. #33
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    EDIT: effet de bord curieux, cela modifie la taille du ImagePanel précédent

    1. lancement appli en maximisé

    2. drag-drop image A --> affichage panel #1 maximisé, image visible, zoom 100%

    3. drag-drop image B (la même image ou une autre)
    --> affichage panel #2, pas d'image visible, zoom -5%
    --> resize du panel #1, pas d'image visible, zoom 100%
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  14. #34
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Alors, il faudrait que t'essayes de décocher dans les Préferences : Forcer le fullscreen. Il semble qu'il ne fonctionne pas avec le mode normal.
    Oups, j'ai effacé ton message (Editer au lieu de Répondre)

    Alors, pour répondre, je disais :
    Alors, il faudrait que t'essayes de décocher dans les Préferences : Forcer le fullscreen. Il semble qu'il ne fonctionne pas avec le mode normal (en fait, il fonctionne une fois sur 2)
    Je ne répondrai à aucune question technique en privé

  15. #35
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par millie Voir le message
    Oups, j'ai effacé ton message (Editer au lieu de Répondre)

    Alors, pour répondre, je disais :
    Alors, il faudrait que t'essayes de décocher dans les Préferences : Forcer le fullscreen. Il semble qu'il ne fonctionne pas avec le mode normal (en fait, il fonctionne une fois sur 2)
    Après recherche, c'est le mode "intégré" qui cause le problème. Si je le désactive, ca marche tout le temps.

    Edit: enfin, ca marche sauf que le zoom initial est à 98% au lieu de 100%.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  16. #36
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Edit: enfin, ca marche sauf que le zoom initial est à 98% au lieu de 100%.
    Cela devrait être corrigé

    Par contre, il m'est impossible de reproduire ton problème de zoom négatif
    Je ne répondrai à aucune question technique en privé

  17. #37
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par millie Voir le message
    Cela devrait être corrigé

    Par contre, il m'est impossible de reproduire ton problème de zoom négatif
    Voila, ma config de l'application et le résultat quand je drag/drop une image 256x256:

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  18. #38
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Youhou, j'ai réussi et je sais pourquoi
    Je ne répondrai à aucune question technique en privé

  19. #39
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par millie Voir le message
    Youhou, j'ai réussi et je sais pourquoi
    Jamais vu quelqu'un aussi content de faire boguer son appli.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  20. #40
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Jamais vu quelqu'un aussi content de faire boguer son appli.
    Oh bah, des fois, quand t'as un bug sur un environnement de prod non reproductible en dév. Tu perds vite quelque jour à trouver
    Alors maintenant, je me satisfais d'un bug reproductible
    Je ne répondrai à aucune question technique en privé

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/06/2014, 21h19
  2. Défilement d'images plus zoom sur image central css3
    Par tijuju dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/01/2013, 09h31
  3. [Google Maps] Zoom avec plus de détails
    Par Gatou dans le forum APIs Google
    Réponses: 2
    Dernier message: 19/04/2012, 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