Hi all,

I’m very happy to announce you the availibility of Gnome Scan 0.3.1. This version is what should have been Gnome Scan 0.3. A lot of bugs has been fixed. Translations are uptodate in french, deutsch and catalan. The data receiving process has been review in order to support Grey, RGB and three-pass acquisition (e.g. all red then all blue then all green data). I intend to support multiple depth in the future. Note that the final result will always be a GdkPixbuf with its limitations : 8bit per sample, RGB only, etc. But choosing lower depth or different colorspace allow to fasten acquisition, and more.

This version include a filled NEWS file for maintainers. Sadly, svn log wasn’t able to output all changelog, need to investigate more in order to get a good ChangeLog file.

Hi all,

I’m releasing 0.3 release of Gnome Scan. This release add a major feature in GnomeScan and Flegita : Mass acquisition. Now GnomeScan implement acquisition as a set of image. This mean that user/application has to manually stop the acquisition process. The acquisition process take advantage of ADF. In flegita, this is shown by the buttons “Stop” or “Next”. If the output format is PDF, flegita write all image in the same file, one page per image. For other image format, the behavior keep being the same.

The acquisition dialog has been a lot review and is now far more HIG compliant, text are more useful. I also fix a lot of bug, including the crazy value of the progress bar. I updated translation and documentation. I weren’t able to contact the deutsch translator, so only the french translation is updated.

Download at usual download page. I update screenshots and documentation at GnomeScan homepage.

Étienne.

Gnome Scan 0.2.4

October 11th, 2006

Hi all,

I made a bugfix release 0.2.4. I fix bugs for epson, v4l devices and more. Please test it and report bugs at GnomeScan bugzilla . Download it at the usual GnomeScan download page .

Étienne.

0.2.1: ready for use !

August 26th, 2006

Hello all,

I released the 0.2.1 version of GnomeScan which include fixes for area size bug (which was a far deep and larger bug) and the “always-busy-after-first-acquisition”. See more details at GnomeScan newspage at Gna!.

Download is also at Gna! project page : http://download.gna.org/gnomescan/ .

Next step is the dbus service. Which means a lot of documentation to read, test to write. This is a huge mutation of the project which make it very different from any other sane frontends. I’ll also have to see how to integrate with hal.

Étienne.

Hello all !

Tomorow begin the final project evaluation. This is one more reason to release the exciting version 0.2 of gnomescan !

Notes

  • Beware this is still an alpha release.
  • this version has been tested against gtk 2.10 and cairo 1.2 (cairo-pdf). I should reasonnabily work with gtk2.8, but cairo-pdf is required.
  • Please uninstall previous version, or old documentation will remain.
  • Please report bugs and patches at bersace03 at laposte dot net.
  • If you have any ideas for a rocking gnome scan experience, put them on the GnomeScan wiki !

Links

Overview

  • Localisation finaly enter the game. I translated to french, this allow me to commente string and make string easy to translated (no splitted string, avoid pango tags, etc.).
  • A new widget allow to choose scan resolution.
  • First plugin implemented : flegita-gimp which allow to scan in new image and scan as layer ! The plugin set default scan resolution to the image resolution or default resolution. But allow to manually set resolution using the new resolution widget.
  • The overal UI has been review in order to have HIG and consistent margins. The save as popup dialog has been replaced by a widget in the main dialog that allow to choose action (only save is available, Sent and Print are planned) and choose the format between PNG, JPEG, TIFF and …. PDF !!! Thanks to cairo-pdf backend :)
  • The preview widget has be rewrite in order to improve performance. The selection is now nicer and far more faster to render. (Thanks to #cairo people). Scrolling with mouse wheel is now supporte, both vertical and horizontal direction. And the most wanted Rotation feature !
  • GnomeScanUI provide new and improves icons for buttons and devices. Thanks to the Tango/ArtLibre project. GnomeScan no longer use “xsane” icons … :)

Under the hood

  • A lot of usefull enums are now declared in the GType system using glib-mkenum (which makes me some headhaches in collaboration with autotools).
  • New widget: GnomeScanAdvancedPreview. Used in Gimp plugins. For now, it just draw rulers around preview area which show the size (in centimeters) and the cursor position. Would be nice if the widget tel the exact size of the area.
  • GnomeScanPreview and GnomeScanAdvancedPreview now use GtkToolBar to display buttons in order to follow desktop toolbar policy.
  • libgnomescanui provide the gnome_scan_ui_init() function which declare stock items GS_STOCK_SCAN, GS_STOCK_ROTATE_COUNTER_CLOCKWISE and GS_STOCK_ROTATE_CLOCKWISE and intialize i18n.
  • GnomeScanDialog has been slightly review and use now one GtkHButtonBox with secondary group instead of two GtkHButtonBox inside a GtkHBox.
  • GnomeScanPreviewArea now draw to a buffer when neeed and just output the buffer at expose. It also correctly handle motion hint in order to keep a decent sync between drawing operation and pointer motion.
  • GnomeScanBackend now handle slightly better errors (i.e. does not crash, just jump), still lake some real errors handling.
  • FlegitaActionWidget now handle GdkPixbuf grab and execute the user request on it. If a file exists, it is save to the Filename-%i.png needed. Image are scanned at screen resolution (using a Gdk call), choosing PDF outpur format select 300dpi (which seems to be far too much, i need advice about that). This is how flegita is intended to work : carry option setting without people to know their screen resolution or what means dpi (think that most of the world uses ISO centimeters).
  • pkg-config modules files are provided for libgnomescan (module gnomescan) and libgnomescanui (module gnomescanui).
  • Documentation has been review including GObject hierarchy, chapters and sections, Indexes, True Widget gallery (not only widget screenshot per page). I wrote a ulgy hack, flegita-shoot that take screenshot of widget using Gdk features.
  • I upgraded to edgy on my box which means gtk2.10 and cairo1.2. I don’t try with cairo1.0. I wish this will allow to create a nice print UI :) Scanning an Printing together in Gnome … so nice !

Known bugs

  • On my Canon CanoScan N1220U (plusteck:libusb), the area selection isn’t efficient. Don’t know on other backend/devices.
  • With networked all-in-on printer Hewlett-Packard OfficeJet 7140xi, the devices keep at busy state after the first acquisition (i.e. preview acquisition) until the app is closed :(
  • Acquisition progress bar is completely dumb. Don’t trust it !
  • Don’t click the about dialog, it strill segfault !
  • And many more, i’m waiting for reports :)

If you have problem with scanning (like ugly pictures, crash, etc.), you can enable verbose output by editing a source file. Remove the #undef g_debug and #define g_debug(…) ((void) 0) lines in libgnomescan/gnomescanbackend.c . Yes that’s not so nice as a –verbose or –debug option, but.

Future

The end of the holidays will surely reduce the rhythm of releases, but i’m very excited about developing and improve the stability of the project. I subscribe to various hosting service like sf.net, gna.org, launchpad.net and freashmeat.net. I also request for a SVN repo at gnome.org and a Gnome maintainer account.

Further development will be made first on GnomeScanBackend in order to get ride of those bugs with many devices. After that, here are functionnality i wish to implement (not in order) :

  • Fixed area (A4, A5, photo, US Letter, etc.)
  • Auto area selection.
  • Zoom.
  • X and Y resolution.
  • Multiple acquisition and multipage PDF output.
  • Sent by mail (with contact completion).
  • Print
  • Fax ?
  • Multiple area per scan.
  • Gamma, contrast
  • A dbus service that handle devices detection and sharing in order to get ride of the waiting dialog (are user waiting so much for printer detection ???).
  • A capplet to configure devices specific options and sharing.
  • Application provided about dialog.
  • AbiWord and gthumb plugins.
  • Split gnomescan (libgnomescan, libgnomscanui, dbus and capplet) and flegita (flegita-gimp, AbiWord and gthumb plugins).
  • And many more you would like to add to the wiki !

Even if that’s out of GnomeScan, i want to mention that I may write one or more backends for SANE. (since my father own almost 9 scanner devices and only 3 are supported). I have a Business card reader. Expect nice plugins for Evolution !

As a conclusion, I would like say i’m very very happy to contribute to Gnome and Free Software. Thanks to Google which allow me to get officially mentored by Gnome and to spend this summer coding for free developers and free users.

Enjoy ! :D

Étienne.

After long work and deep rework, i’m please to announce the availability of GnomeScan-0.1 !

GnomeScan aim to provide scan to the Gnome infrastructure. The plateforme part of the project consists of two library : libgnomescan — which may be considered as libsane-glib — and libgnomescanui — a collection of widgets to write scan interfaces. The desktop part consists of a tiny app : flegita and more to come.

This release features a lot of changes in almost every part of the project, especially libgnomescan and libgnomescanui. The code has been entirely review in order to write documentation using gtk-doc tool. This lead to many changes in the naming schemes and coding style. The coding style is now much closer to gtk+ one. The code has been simplified in some part (e.g. using G_DEFINE_TYPE). The autotools files has been corrected so that make distcheck pass successfully.

What changed ?

  • libgnomescan:
    • GnomeScanBackend device probe has been deeply reviewed. API has been cleaned of loosy function such as gnome_scan_backend_compute_image_measure() and other. Use boxed type GnomeScanContextInfo to share context data instead of applying sane option (like “tl-x” and other). Work around some unfollowed SANE convention (never use string where an enum is possible).
    • GnomeScanner recevied the following properties:
      • “dimension”: the dimension of the device (in mm)
      • “resolution-range”: the range of available resolution on the device.
      • “sources”: an array of available source (Automatic document feeder, flatbed, etc.).
    • GnomeScanner:”device-type” is now an enum value which make it far more easy to use.
    • GnomeScanContext received new signals:
      • “preview-started”
      • “preview-terminated”
    • GnomeScanContext has been deeply review with GnomeScanBackend and GnomeScanner. rotation is appointing, but not yet implemented. The API has been cleaned. image-size, image-measure and other loose code has been dropped. More signals are to come since this allow GnomeScanContext to marshall all widgets of a scan UI.
    • GnomeScannerOptionSet has been drop.
    • Scan option (resolution, area, source, etc.) and device option (light, etc.) are now separated. gnome_scanner_get_options() now give only scanner options. Scan options are now handle only with GnomeScanContext.
    • gnomescanutils has been a lot completed. New types has been created. Glib enums are generated. Types used in GObjects properties are now registered in the Glib type system. Also a set of useful function has been implemented such as g_value_new_{int,boolean,double,string}(), g_enum_get_{name,nick}() and other.
    • The library is entirely documented.
  • libgnomescanui:
    • New widgets:
      • GnomeScanOptionWidget: a widget that make simple the creation of other option widget, showing a nice label, storing a GnomeScanContext and packing a child widget. That save a lot of codes :) .
      • GnomeScanSourceSelector: a widget that allow to select a source if a device has several choices.
    • GnomeScannerSelector is now base on GnomeScanOptionWidget. Also the combo box now show an icon representing the device type. The overall look of this widget has been review so it take less place. See screenshots.
    • GnomeScanDialog now set it sensitivity according to GnomeScanContext “preview-started”, “preview-terminated”, “acquisition-started” and “acquisition-terminated”. One time it will also react on a “probe-started” and “probe-terminated” signal. That kill the bug of a partly insensitive window during preview acquisition.
    • GnomeScanPreviewArea now show an empty pictures of the size of the selected device (thanks to GnomeScanner:”dimension” property). The widget does not insensitive itself during preview acquisition.
    • The library has been entirely documented. That lead to a lot of code clean up. Most widgets has now a screenshot of it. Some widget screenshot are obsolete, but this is a details.
  • flegita:
    • Now use GnomeScanSourceSelector above the GnomeScannerSelector widget.
    • a new FlegitaActionWidget appeared in the code, but is still hidden and non functionnal. A preview screenshot is available. (Uncomment lines 113, 115 and 117-121 in order to show the widget).

What didn’t happen ?

  • The Gimp plugin: This is the next step before the end of the Summer of Code. I wish to publish it before the end of the month in GnomeScan 0.2. This plugin require a new widget : GnomeScanAdvancedPreview.
  • Rotation: This feature needed the deep review i made in libgnomescan. A bit of code has been written for that feature. This feature include another widget : GnomeScanRotationSelector based on GnomeScanOptionWidget. Also, all the infrastructure of the post acquisition image manipulation has to be designed. Since the review of the acquisition configuration design, this should be a lot simpler.
  • Preview zoom: Not for 0.2.
  • Mass acquisition: source selection is one step in the way to implement this feature. But a lot of work has to be done do design and implement this feature. GnomeScanAcquisitionDialog is to be deeply review for this feature. Not for 0.2.

Notes

I made myself the icons using the great Inkscape and trying to follow Tango guidelines. But I’m not satisfied with the icons. If anyone wants to contribute a bit and create an icon for each device type described in the libgnomescan reference manual, I’m open to any contribution :-) .

Known bugs

  • Preview: the scan area selection is not efficient.
  • Preview: dimension of the preview seems buggy on certain devices.
  • Funky picture: raw data aren’t handle correctly. Currently, GnomeScanBackend just put raw data into a GdkPixbuf using gdk_pixbuf_new_from_data().

Thanks

If you read this blog you may know i wheren’t motivated to dive back in the code. I want to thank my mento Vincent Untz that help me re-entering the game. Thanks all the people who help me on IRC, especially on #gnome-hackers (chpe, nud, hub, etc.) and on #gimp, etc. Thanks to all Gnome developers that help making great software in happyness. Thanks to Marc-André Lureau, GSmartMix developers with whom i had nice discussions and happy testings of the the wonderful Vista killer GSmartMix project !

Further

Documentation, code review, 0.1 release. All that things make GnomeScan an ever more mature project. This release is kind of Request For Comments. Especially for the API of both libgnomescan and libgnomescanui. Sent me your comments. Add your ideas in at http://live.gnome.org/GnomeScanning/Ideas.

Hosting is a key point in order to get feedback and code. The bzr branch at http://bersace.ath.cx/bersace/flegita is far from accessible. I’m wondering wether to use sf.net, gna or launchpad. More important, i don’t know well if and when this project will be included in Gnome and then hosted in cvs.gnome.org. After using bzr, CVS looks really backward for me :| .

Next step is 0.2 realease which mainly include GnomeScanAdvancedPreview widget and Gimp plugin based on this widget. This will end the Summer of Code projet. Of course, i intend to continue the work as long as the project is useful. At the end of the Summer of Code, a lot of work has been done. But the overall project is still in an obvious alpha state. Key feature like rotation, save as pdf, mass acquisition are missing.

Thanks.

Update: A 0.1.0.1 version has been released which use gnome crash report tool !

Hello all,

This week was a tremendous week. I implemented Preview. The preview is divided in two widget : an area widget and a widget encapsulating the area. This allow to implement Simple Preview and Advanced Preview. For flegita, i only implemented simple Preview widget. I drop the rulers since its quite useless for day to day scan. For simple preview, i prefer to implement auto selection and fixed selection. The preview area is drawn using cairo, of course :)

I fixed a lot of bugs and implemented a lot of tiny features and API call that make libgnomescan, libgnomescanui and flegita a lot better. This version has a bug in the translation between pixels and millimeter for the scan area.

This version is a prerelease as i go to holidays during 3 weeks. I’ll be back late july. Wish you’ll put ideas in http://live.gnome.org/GnomeScanning/Ideas :)

The 0.0.3 release will have a full preview implementation including rotation, fixed selection and maybe autoselection. The 0.0.4 release will have source handling, i.e. flatbed or automatic document feeder (ADF) with mass acquisition support. Then i will start plugins.

Many thanks to neo from #gimp and other for the great help they provide.

As of now, I dedicate the project in memoriam Mark Finlay, a lovely Gnome hacker and funny blogger that passed away late 2003. He did some work on GnomeScan that highly inspire me to do the Preview area.

Have nice holydays.

Update:Something very important imho, i use this software for real use :) . I needed to scan sketches and was able to do it using Flegita in the Graphics menu, croping the image to the right size :D . This make me quite confident about the state of the program and this is why i let it rest during 3 week before wake it up late july.

Annoucing gnomescan-0.0.2

June 26th, 2006

Hello all,

I’m glad to announce the availability of GnomeScan version 0.0.2. You download it at the current releases page hosted at my homepage. See the screenshot page for a preview of flegita.

A few word about GnomeScan for new readers : GnomeScan is a Gnome xsane replacement for the Gnome desktop. The project provide libgnomescan : a glib-ish API for scanner access using SANE as backend ; libgnomescanui : a collection of widget that use libgnomescan API for scanner access ; and flegita, a tiny standalone app for quick scan.

What’s new in this version :

  • Acquisition is implemented. Not yet cancelable. All signals for acquisitions has been implemented : “acquisition-started”, “data-received”, “acquisition-terminated” and “image-received”. This allow a high coordination of Widgets
  • Flegita now connect to the signal “image-received” and just save to a file using a GtkFileChooserDialog. Flegita is close to what it will be. I’ll only add a GnomeScanPreview widget to the UI and flegita will be done. As Flegita is pretty near its final state, you can easily see the simplicity of the code : 99 lines including comments and blank line !
  • Option handling has been highly improved. Properties “title”, “desc”, “readonly” and “unit” has been added and implemented. Future options “range” and “enum” for constraint are declared. A new signal “changed” is trigger on value set. This signal will be propagate to GnomeScanner signal “option-changed”.
  • The GnomeScanContext object received a lot of improvement. A new property “image-size” allow UI to inform the user of the approximate end image size. GnomeScanContext has now a lot of signal to coordinate all the GnomeScan implementation. This Object just rocks !
  • UI receive good improvement. Window use “xsane” icon. The ScannerSelector now show “xsane” icon for each device. The final goal is to have a Flegita icon and a icon representing the type of the scanner. An important changes is that the GnomeScanDialog now receive the UI as parameters. This allow and force user to instanciate ScanWidget (like ScannerSelector, Preview, etc.) before the ScanDialog. That’s a better design in a general manner.
  • Probe is threaded, but thread is blocking so that’s not yet useful. I may investigate further in that domain later.

The future :

  • Implement GnomeScanPreview widget. Get inspired by Mark Finlay work (thanks Colin Marquardt)
  • Improve GnomeScannerOption. Implement option lookup and improve “changed” signals. etc.
  • Maybe provide a ComboBox to Flegita that allow to choose action : “Save to File”, “Print”, “Fax”, “e-mail”, etc.
  • Investigate global well know option in GnomeScanContext. (e.g. resolution, area, etc.).

Stay tuned.

The work on Gnome Scan API and UI is going on. I work on a quite well designed API and start building a GnomeScanDialog and a GnomeScannerSelector widgets. As a first step is done, I release gnomescan-0.0.1.

What is implemented :

  • Devices and Device’s option probe.
  • Device selector updated on “probe-done” signal. If you have only one device, the selector is hidden.
  • Device selection and “scanner-selected” signal.
  • Preliminary handle of “ok” response to trigger acquisition

GnomeScan already have a nice feature : you can choose dynamically a device without reprobe. GnomeScan use signals to propagate choices and actions.

You can see screenshot at http://bersace03.free.fr/pub/captures/gnome/flegita and download at http://bersace03.free.fr/pub/GNOME/Scan/Releases/.

Next step is basic acquisition using signals to inform both acquisition status and sent picture.

Étienne.