New flegita-gimp for r400

August 7, 2007

Hi everyone,

I rewrote flegita-gimp on top of Gnome Scan 0.5.2. It’s in SVN for the 400th revision ! This was very easy to write this plugin, reusing code from the previous one. Once thing to notice, it’s the first ever use of Gegl inside the Gimp ! Keep in mind that Gegl is designed as the future of Gimp. In the future, Gnome Scan and Gimp should speek natively using GeglBuffer, but for Gimp 2.3, i had to translate GeglBuffer into the GimpPixelRgn.

Using GeglBuffer allow to manipulate unlimited sized image from high res scan (given there is no memleak). I wonder if that make sense to add advanced option such as layer opacity or layer mode. I already add a field entry allowing to name the field. This avoid to rename the field after scan. Feedback welcome.

I provide a screencast video using flegita-gimp 0.5.2 showing the two features provided by the plugin : scan as new image and scan as layer. flegita-gimp should receive improvments like better integration with undo/redo action.

If you want to test it, that’s easy (compared to AbiScan) :

  1. install Babl and Gegl from SVN
  2. install Gimp 2.3 or SVN
  3. install Gnome Scan SVN
  4. launch the Gimp and use /File->Acquisition->Scan or /File->Scan as Layer to trigger the plugin.

This is the second plugin on top of Gnome Scan. I’m quite happy with that. Gnome Scan is really cool to use. It really needs debugging and polishing, but the API actually rules.

Regards.

Hi all !!

Update: emergency 0.4.0.1 release : fix build failure & include latest swedish translation

For Chrismas, i expected a 0.3.2 release, but enhancments and API breakage are so important, i decided to make a major release. i codenamed this release « Is your app people-ready ? » in order to wink at Microsoft advertisments in the past month : « Are you people ready ? ». I really hate this ads which don’t expose product quality, but “feelings” and “concepts”. That’s manipulation. This release of Gnome Scan add nice smart behaviour that make it very suitable for daily use, both for basic and advanced users.

Highlights

  • The scan dialog has been entirely review and is now very consistent with Gtk print dialog. The new dialog implements a mecanism to include extras widget inside the dialog instead of building an entire dialog using provided widgets. This add consistency between app using Gnome Scan, and reduce the amount of code in app/plugin.
  • Gnome Scan now implement a smart way of selecting area and rotation for you. Select the device, select the source, select the format and the page orientation. Gnome Scan will compute if the document will be rotated in order to fit the scanner, and centered if you use ADF.
  • Gnome Scan preview now allow you to resize only “custom size”. So if you choose A4 paper, you will just be able to move the area. Select back Custom size to adjust area again.
  • The preview area now shows a “document” icon in top left corner instead of a centered application icon, this is far more useful when you set the rotation, in order to know where is you document, even if you didn’t trigger preview acquisition.
  • Gnome Scan now handle X/Y resolution. Gnome Scan try determine wether the device allow dual resolution and allow you to unsync res.
  • Gimp plugin now allow you to choose layer name before scan. The acquisition dialog is now 4 times smaller !!
  • Updated translations. Many thanks to Philip Sadleder for deutsch translation, Gil Forcada for catalan translation and Daniel Nylander for swedish translation !

Links

Under the hood

  • GnomeScanDialog has been highly reviewed. It now herit (again) from GtkDialog, like GtkPrintUnixDialog. GnomeScanDialog now use GtkNotebook in order to separate fields. This allow to have a tab completely dedicated to preview. In contrary to printing, scan preview is interactive : user can choose area and rotation, this is why i choose to use a tab instead of a separate window. The preview tab is shown only if user select “Flatbed” source.
  • The GnomeScanDialog implement a “front widget” mecanism that allow developer to add a custom widget in the General tab, below source and format selectors. There is not yet an API for adding/hiding custom tabs.
  • Introducing GnomeScanAreaSelector, a smart widget that allow user to choose document format and orientation. When a device is selected, the widget compute a list of available formats that fit the device geometry. The widget compute if the document needs to be rotated to fit the device geometry and setup the context in order to rotate back the document in the right orientation. This behaviour apply both with flatbed or adf source selected. GnomeScanAreaSelector use new Gtk+-2.10 GtkPaperSize API which use PWG standard for sizes and names.
  • Gnome Scan now store wether an area is user defined (custom) or not, this allow GnomeScanPreviewArea to hide resize handle if area is not user defined.
  • GnomeScanContext now handle dual resolution. However, i based the device dual resolution capability on SANE 2 standard. SANE backends may implement differently that for SANE 1. That’s one of the problem with SANE.
  • GnomeScanPreview and GnomeScanAdvancedPreview has been dropped. They were quite duplicated. now GnomeScanDialog provide a unique preview GUI.
  • GnomeScannerSelector has been dropped in favor of GnomeScanListStore which allow to feed both GtkTreeView (implemented) or GtkComboBox. GnomeScanDialog now use a GtkTreeView feeded with a GnomeScanListStore.
  • GnomeScanOptionWidget has also been dropped. This widget only added automaticcaly a field before a widget. This widget didn’t allow to keep fields aligned. Now let user use either a GtkTable or frame (like GnomeScanDialog).
  • Add a –disabled-gnome option in order to build flegita for xfce desktop target. (Patch from Olaf Leidinger).

How to help ?

  • Please test the smart behaviour. If your does not center document in ADF, if should review the process.
  • If you didn’t find useful stock paper size, please ask for adding it.
  • Please translate this major alpha release.
  • If your device handle dual resolution, please test wether Gnome Scan detect this capability.
  • Spread the word, ask for package in your distribution or package it !

About Gnome Scan and Gnome

I failed to follow Gnome 2.18 schedule. Mostly because i’m new to free software development, i do not yet manage my work as i want. I often let Gnome Scan hibernate during few weeks, and then develop it during on weeks and produce a release. I wish i’ll be able to spend this week just before tarball dues.
Also, Gnome Scan still have deep API changes. I wonder if i will modify the API to be more consistant with GtkPrint API, as far as possible.

Gnome SVN migration is soon to be completed. I wish to switch to a a gnome as possible hosting solution for SVN, FTP, translation, …

Future

For next releases, i intend to implement a few features.

  • Select maximal possible area.
  • Auto select area.
  • Gamma correction.
  • Highlight/Shadow point
  • The return of GnomeScanOptionSet.
  • Device specific options tab in GnomeScanDialog.
  • Depth selection.
  • Colorspace selection.
  • Whatever you asked for …

SANE and HAL

Currently, SANE manage two task : probe and access. That’s a bad thing. SANE must let OS do the probe and ask it for access. SANE should provide a simple glue between various OSes and driver so that OSes can load driver on plug, monitor buttons, and trigger acquisition. I wish that SANE 2 will move toward this design or scanner in HAL will be a dream (or cost a fork which i really do not want). After 1.0 release, i plan to implement one or two driver for SANE (my father owns about 9 scanners at home from all-in-one printers to various pens), especially a nice business card reader. This will allow me to dive deeply into SANE, hoping to make constructive critic for SANE 2 design. Martin Owens is working hard on Scanner in HAL, wish that for this summer, Gnome Scan will use HAL.

Allan, a most active SANE devloper said that linux distro user often do not use HAL. I really think that’s a mistake. All major distro ship HAL, and tons of other ditros do that too. SANE can handle probe, but must allow OS integration. Mac OS X has nothing for scanners. Vista has a very nice scanner handling (espcially probe and detection), but drivers lakes or are unsusable, also Vista scan UI is a joke (not people ready !). Freedesktops has a huge opportunity to make the difference with proprietary OSes ; Droping “probe each launch” and adding hotplug+button support is a must-have feature to fulfill this goal, along with OCR.

Merry Chrismas and see you in 2007 !

Étienne.