Journal : Gnome Scan 0.5.1 : « Le jeu en valait la chandelle »

Posté par Étienne Bersac (Jabber id, page perso, ) le 12 juin 2007
0
Salut à tous,

Après plusieurs mois de conception et de développement, et sur les conseil de mon parrain Vincent Untz, je produit la version 0.5.1 de Gnome Scan. Gnome Scan se conçoit résolument comme un toolkit de conception d'interface et de fonctionalité de numérisation dans les applications, bien loin du concept traditionnel du "centre de numérisation" qui tente tant bien que mal de s'intégrer au reste.

Cette version est une réécriture complète, d'où le nom de code « Le jeu en valait la chandelle » (en français dans le texte). Il y a quelques régression sur cette version qui devrait être comblée d'ici la 0.6.0 : aucune gestion de la rotation, pas de greffon Gimp (prière de me signaler d'autre que j'aurai manqué). Le travail de réécriture à principalement consisté à remplacer des fonctionnalité écrite en dur par un système beaucoup plus souple. Gestion des options, gestion des pilotes, etc. À cela s'ajoute la possibilité d'écrire des extensions (un bête .so) chargé automatiquement qui ajoutera des fonctionnalité. Les deux pilotes (fichier et SANE) sont répartie dans deux extensions distinctes. Parmi d'autres points important, on notera la programmation multi-thread, la migation vers Gegl, etc. Grâce à la migration vers le SVN de Gnome, Gnome Scan est déjà traduit (partiellement) en Français, Espagnol et Suédois !



Reconception

La nouvelle conception de Gnome Scan divise le processus de numérisation en trois n½uds distincts : acquisition, traitement, sortie. Chacun de ces n½uds est configurable par l'utilisateur. L'utilisateur choisit la source, l'application choisir le traitement et la sortie. GnomeScanDialog va exposer les options de configuration et stocker les informations dans GnomeScanSettings avant d'exécuter le GnomeScanJob qui ordonnace la numérisation (acquisition puis traitement et enfin sortie).

Extensibilité

Les possibilité d'extension de Gnome Scan 0.5 sont assez considérables. Il suffit d'enregister un sous-type de GnomeScanBackend pour ajouter un pilote qui proposera différentes sources. L'application écrit sa propre source. La traitement n'est pas encore implémneté. Chaque option de n½ud est maintenant décrite par un GParamSpec (un peu étendus) associé à un GnomeScanParamWidget sachant comment représenter et interagir avec l'utilisateur. GnomeScanDialog va construire l'interface en fonction de ces informations. Les ParamSpecs ne sont pas stable (ex: devenir inactif), l'interface tiens compte des changements.

L'aperçu est encore minimaliste, mais là encore, hors de question d'écrire en dur toute les fonctionnalité de l'aperçu. J'ai commencé un système de greffons à GnomeScanPreviewArea qui permettra d'ajouter pipette, multiselection, zoom, correction de reconnaissance de mise-en-page et autres fonctionnalités sans toucher à la bibliothèque.

Fluidité

J'ai massivement utilisé la programmation multi-thread afin de fluidifier l'interface. Le résultat est plutôt satisfaisant. Le logiciel est largement optimisé et l'interface plus réactive. À noter que les bases sont là pour gérer le branchement/débranchement à chaud. J'ai échoué à implémenter le branchement à chaud (il semble que SANE ne soit vraiment pas fait pour ça, malgré les dire de la documentation). J'attend le travail de HAL pour migrer. L'acquisition d'aperçu est notablement amélioré !

Gegl

Il semble que Gnome Scan soit le premier client de Gegl. L'année dernière, on m'avais mis-en garde contre GdkPixbuf qui consomme énormément de mémoire. J'ai migré vers GeglBuffer qui utilise le disque dur (Øyvind Kolas utilise des images de 11G avec un portable disposant de 2G de RAM !). Gnome Scan utilise aussi Gegl pour le traitement lui-même. J'ai envoyé quelques patches et suis même devenu contributeur de Gegl.

GSane

Un énorme boulot a été d'encapsuler SANE dans GSane. Le but étais d'avoir une GLibisatation de SANE et surtout, d'être adapté à la conception d'une interface ergnonomique et dynamique.

Tester

Même si vous n'avez pas de scanner, tester ! Il suffit d'avoir SANE installer et d'ajouter "test" dans /etc/sane.d/dll.conf ou dans un fichier dans /etc/sane.d/dll.d/ (sous debian). J'ai notament besoin de retour sur le support de SANE, l'interface, et plein d'autre choses. Par défaut, gnome-scan affiche plein d'information de débogage. Exécuter flegita > flegita.log et envoyer le résultat sur le bugzilla.

La suite

La suite consiste à implémenter complètement l'aperçu et enfin de coder le traitement d'image (ROC, amélioration, etc.) et enfin les divers greffons.

OCRopus

J'ai déjà contacté OCRopus et reçu quelques retours dans le but d'implémenter la ROC (et plus) en me basant sur OCRopus. Il faudrat ajouter une troisième étape pour corriger l'analyse et la reconnaissance. C'est une domaine totalement inexploré pour ma part, beaucoup de travail en perspective. J'espère arriver à quelques chose de concret d'ici fin août (un greffon abiword, par exemple).

Contribuer

Pour contribuer, tout est bon : rapporter des bogues, empaqueter pour sa distro/architecture, développer un greffons pour son application préféré, une extension, résoudre une bogue, conseil pour l'interface et la conception, contribuer aux projet associé (Gegl, Hal, OCRopus, SANE, etc.), traduire, etc. J'aimerai notamment une passerelle python (j'ai déjà un projet maison python où je verrai bien l'utilisation de gnome-scan !)

Merci !

Étienne.

> Lire le journal (17 commentaires, moyenne: 4,2).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

tu dois être nouveau ici ...

Posté par Gart Algar (Jabber id, ) le 12/06/2007 à 16:08. (lien). Évalué à 10.

Ceci n'a rien à faire dans un journal... mais dans une dépêche bien sur !

--
Ubuntu is an ancient african word meaning : "I can't configure Debian"
  • [^]Re: tu dois être nouveau ici ...

    Posté par ploum (page perso, ) le 12/06/2007 à 16:33. (lien). Évalué à 7.

    Effectivement. Je n'ai qu'un mot : BRAVO !

    • [^]Re: tu dois être nouveau ici ...

      Posté par L () le 12/06/2007 à 18:01. (lien). Évalué à 5.

      J'en vois huit, la prochaine fois, tu as une pénalité de 7 mots pour le prochain commentaire.

  • [^]Re: tu dois être nouveau ici ...

    Posté par Étienne Bersac (Jabber id, page perso, ) le 12/06/2007 à 17:55. (lien). Évalué à 10.

    Hors de question !

    Vue la stabilité du bousin, le manque de fonctionnalité et les régression, mieux vaut ne pas faire de dépêche. Par contre, c'est promis, je fait une dépêche dès que le module sera intégré dans Gnome (y'a de bonne chance pour 2.22) voire à la sortie de la 0.6 si elle est suffisament stable et intègre bien OCRopus.

    Merci pour les encouragements !

    Étienne.

    --
    E Ultreïa !

Test

Posté par Dup (page perso, ) le 12/06/2007 à 16:47. (lien). Évalué à 5.

Bon j'ai pas de scanner mais si ca peut aider de tester je vais le faire.

voir packager pour distrib.

La vraie question est...

Posté par ccomb (Jabber id, page perso, ) le 12/06/2007 à 17:07. (lien). Évalué à 7.

... mais où trouves-tu le temps de faire tout ça ??!

  • [^]Re: La vraie question est...

    Posté par Étienne Bersac (Jabber id, page perso, ) le 12/06/2007 à 17:57. (lien). Évalué à 5.

    Héhé … le C/GObject n'est pas si long que ça a développer, surtout si on utilise la génération de GObject d'Anjuta2 (j'ai envoyé quelques patchs pour améliorer cette partie). À noter qu'une réécriture est toujours plus rapide. J'ai quand même un mois et demi de développement à plein temps là dessus, et y'a encore beaucoup de boulot.

    --
    E Ultreïa !

Addendum

Posté par Étienne Bersac (Jabber id, page perso, ) le 12/06/2007 à 18:21. (lien). Évalué à 4.

Salut à tous,

À la demande de lecteur sur le blog, j'ai posté les capture que j'ai fait. En fait, j'ai pris des captures au long du développement. Vous pourrez ainsi jouer au jeux des 1, 5, 16, 4, 7 puis 2 erreurs entre les différentes images ;)

http://picasaweb.google.com/bersace/GnomeScan05

J'ai notamment mis-à-jour les paquets du dépôt pour résoudre un problème d'empaquetage :S (Promis, cette fois, j'ai testé l'installation !) Faudrait que je passe à piuparts à l'avenir …

Cordialement,
Étienne.

--
E Ultreïa !

Gegl / Babl

Posté par Animatrix () le 12/06/2007 à 18:25. (lien). Évalué à 1.

J'ai compilé babl, et installé sans pb.

Mais gegl plante en me disant que babl est pas installé.
Savez-vous comment faire ?

  • [^]Re: Gegl / Babl

    Posté par Étienne Bersac (Jabber id, page perso, ) le 12/06/2007 à 19:09. (lien). Évalué à 2.

    Donner le message d'erreur aiderai !

    As-tu bien relancé ./autogen.sh de Gegl ? Utilise-tu bien Gegl SVN ?

    Cordialement,
    Étienne

    --
    E Ultreïa !
    • [^]Re: Gegl / Babl

      Posté par Dup (page perso, ) le 12/06/2007 à 21:13. (lien). Évalué à 2.

      Autre piste si comme moi pour les environnements de test tu installes dans un path spécifique ou meme path par défaut /usr/local, vérifie que ton PKG_CONFIG_PATH est bien à jour pour pointer sur les nouveaux fichiers *.pc (notamment babl.pc)

      Alors sinon moi avec les releases snapshot de babl et gegl (donc 0.12 et 0.14) je compile gnomescan mais il plante à l'acquisition.

      Si je récupère le svn de babl et gegl, j'arrive à compiler babl mais pas gegl (erreur d'insertion fichier gtk visiblement car j'ai une erreur par appel de fonction gtk dans le répertoire tool de gegl)

      • [^]Re: Gegl / Babl

        Posté par Dup (page perso, ) le 12/06/2007 à 21:16. (lien). Évalué à 2.

        Ah aussi j'ai oublié de te féliciter pour le travail accompli sur ce logiciel, même si je n'ai pas de scanner, cet outil est indispensable pour un bon environnement de bureau friendly etc ;)

        Et petite question au passage, sane gère les équipements v4l, si bien que dans gnomescan j'ai pu voir ma webcam et carte TV, as tu testé d'acquerir ce type d'équipement ? vu la modularité je pense que ce sera possible a terme si c'est pas déjà fait.

        • [^]Re: Gegl / Babl

          Posté par Étienne Bersac (Jabber id, page perso, ) le 12/06/2007 à 21:23. (lien). Évalué à 3.

          Merci,

          Si ça plante, n'hésite pas à rapporter le crash avec notament les messages de débogages en pièce jointe, voir le résultat d'un petit backtrack de gdb.

          Si SANE gère, alors Gnome Scan gèrera. Sinon, c'est une bogue. notamment, Gnome Scan ne gère pas encore les scanner sans vitre (en gros, ceux dont on ne connaît que la largeur de la numérisation). Mais le pilote "test" permet de tester cela, de plus, j'ai envoyé un scanner mange-feuille à Gerard Jeager, le responsable du pilote plustek. Je devrai avoir accès au matériel d'ici cet été (il manque que la calibration et il me le renvoie).

          J'ai aussi un scanner pour carte de visite, même topo, il faut écrire le pilote. Je vais peut-être m'y atteler, mais pas de si tôt. (Je pense écrire le pilote windfarm121 avant, vu que ce matériel est mieux "documenté", comparé à la rétroingénierie du pilote windows pour le scanner …).

          Cordialement,
          Étienne.

          --
          E Ultreïa !
          • [^]Re: Gegl / Babl

            Posté par Dup (page perso, ) le 12/06/2007 à 21:56. (lien). Évalué à 2.

            J'ai pas osé faire un rapport de bug du fait que je n'avais pas utilisé les versions svn de babl et gegl, mais si gnome-scan doit marcher avec babl 0.0.14 et gegl 0.0.12 alors je veux bien refaire le test et effectuer le rapport de bug en conséquence.

            • [^]Re: Gegl / Babl

              Posté par Étienne Bersac (Jabber id, page perso, ) le 13/06/2007 à 09:52. (lien). Évalué à 2.

              Tu peux utiliser Babl 0.0.12, cette version est suffisament stable. Parcontre, tu doit impérativement utiliser Gegl SVN qui inclue quelques patch de ma part nécessaire à au fonctionnement de Gnome Scan.

              Cordialement,
              Étienne.

              --
              E Ultreïa !
              • [^]Re: Gegl / Babl

                Posté par Étienne Bersac (Jabber id, page perso, ) le 13/06/2007 à 11:17. (lien). Évalué à 2.

                Je voulais dire Babl 0.0.14

                --
                E Ultreïa !
                • [^]Re: Gegl / Babl

                  Posté par Dup (page perso, ) le 13/06/2007 à 18:31. (lien). Évalué à 2.

                  Ok je regarde à cela ce soir, mais gegl svn ne voulait pas compiler chez moi je retente apres manger ;)

Revenir en haut de page