Design Scanner Gnome Scan Infrastructure
- From: Étienne Bersac <bersace03 laposte net>
- To: gnome-devel-list gnome org
- Subject: Design Scanner Gnome Scan Infrastructure
- Date: Mon, 29 May 2006 13:52:04 +0200
Hello,
You may know that i'm currenlty working on a librarized xsane
replacement. Obviously, the project is dual headed : in one hand a
scanner API and in the other hand an UI API. I build a review of current
scan UI at http://bersace03.free.fr/pub/GNOME/Scan/Review in order to
point out wrong and good ideas. If you can put those ideas in the wiki
http://live.gnome.org/GnomeScanning , that would be helpful. As this is
my first project any help in library design are very very welcome.
Here are some thoughts about Gnome Scanning :
1. Scanner have multiple use - The first 4 are to be implemented in
my Google SoC project - :
* Simple case : I want to have a picture of a business
card. No matter of color, transformation, resolution, i
just want it as i saw it in real world (e.g. blank
cropped, 1:1 scale, etc.)
* Advanced case : i want to scan a picture as material for
graphism or similar. I want to choose resolution,
colorspace etc.
* Album case : I have ton of old photos i want to numerize
and burn to CD. I have an ADF and i want to put all
those photo, select format of photo and launch mass
acquisition into that album.
* Document case : I have a 10 page printed document i want
to import. I select "New document from scanner". I have
flatbed. I then put the first page, acquisition begin,
for each page acquired, programm ask me to put the next
page or stop. When all acquisition is done, the OCR tool
is launch and i get a new document containing the text
imported.
* Fax case : I want to fax a page with my flatbed scanner
and my modem. I don't want to bother colorspace nor
resolution. Just select scanner if needed, contact phone
in addressbook and scan each page i want to send.
2. According to Review of Dialog, use all-in-one interface for all
of these use drove to far too complex UI that rebut most users
(see xsane/quiteinsane).
3. Gimp plugin is useful. Integration in application is a must
feature we have to ship. Standalone scan app (e.g. scan+save to
file) is useful only for basic use. In other cases, Application
itself use scan feature like print feature : menu entry+dialog.
That make scan feature easier to access.
4. Scanner options are of two kind : persistent options and
acquisition option. We must have two tools for each kind of
options. A capplet configure persistent options. Applications
configure acquisition options. UI expose some options the
application wants the user to modify for his convenience.
5. UI should be modular. Applications are able to decide which
options does not worth to let user changing it (e.g. colorspace
for fax is allways B&W ; resolution for basic scanning is always
screen resolution, mostly 96dpi), and which options worth to be
set internally or just using gconf (not exposed via UI).
6. Each UI must allow choose of device if multiple.
7. According to Wizard are used by standalone all-in-one scan tool.
Wizard used are long (e.g. VueScan). We must not use wizard.
KISS. Scan UI must be a Acquisition Settings Dialog. Like print
dialog. (did you ever see a wizard for printing ?)
In a more technical point of view, here is a braindump of app workflow
to show how they might use the library. I consider using two library
libgnomescan an libgnomescanui (remember the dual-headed library above).
1. App initialise Scan Context.
2. App configure hidden settings (such as mono/multi scan,
colorspace, etc.).
3. App build UI using libgnomescanui widgets (devices selector,
preview widget, etc.) connecting widgets with Context.
4. App trigger launch of Dialog.
5. Widgets set Context Acquisition options.
6. Widget launchs acquisition.
7. Library show Acquisition dialog showing progress. Dialog ask for
next page in flatbed step by step multi scan.
8. For each picture acquired, app receive a gdkpixbuf using signal.
9. Once acquisition is done, quit UI
10. App free all stuffs.
This is just my current view of the workflow. I'll be very happy to have
a review by you !
I also wonder how we can learn lesson from libgnomeprint{ui,} and
gtkprint work.
Thanks.
�ienne.
--
Verso l'Alto !
[
Date Prev][Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]