[IMAGE-SIG] PIL/SANE interface

Andrew Kuchling amk@magnet.com
Thu, 19 Jun 1997 17:22:33 -0400 (EDT)


I've completed a first version of a SANE interface for the Python
Imaging Library.  SANE is a freeware API for various raster devices
like scanners and digital cameras; it runs on various Unixen.  The
Python Imaging Library, of course, allows you to read and write images
in various formats, and manipulate them in various ways.  It seems
like a good fit to me...

You can get the code from http://starship.skyport.net/crew/amk/projects/ .  
If you try it out, please let me know how it works for you.

	SANE home page:	http://www.azstarnet.com/~axplinux/sane/
	PIL home page:  http://www.python.org/sigs/image-sig/Imaging.html

Here's a sample script that gets a single image from a QuickCam, and
writes the image out to a GIF file.  The script's output is:

SANE version: (327680, 0, 5, 0)
Available devices= [('qcam:0x378', 'Connectix', 'B&W QuickCam', 'video camera'), 
('pnm:0', 'Noname', 'PNM file reader', 'virtual device'), 
('pnm:1', 'Noname', 'PNM file reader', 'virtual device')]
SaneDev object= <SaneDev instance at 809c5f8>
Device parameters: ('L', 1, (330, 246), 8, 330)

And the script itself is:

#!/bin/env python
# Get the path set up properly
import sys ; sys.path.append('.')

import sane
print 'SANE version:', sane.init()
print 'Available devices=', sane.get_devices()

scanner=sane.open('qcam:0x378')
print 'SaneDev object=', scanner
print 'Device parameters:', scanner.get_parameters()

# Set scan parameters
scanner.contrast=170 ; scanner.brightness=150 ; scanner.white_level=190
scanner.depth=6
scanner.br_x=320 ; scanner.br_y=240

# Initiate the scan
scanner.start()

# Get an Image object containing the scanned image
# (For my B&W QuickCam, this is a grey-scale image.  Other scanning devices
#  may return an RGB image, or a single channel of an RGB image.)
im=scanner.snap()

# Write the image out as a GIF file
im.save('foo.gif')

# The show method() simply saves the image to a temporary file and calls "xv".
#im.show()


	Andrew Kuchling
	amk@magnet.com
	http://people.magnet.com/%7Eamk/

_______________
IMAGE-SIG - SIG on Image Processing with Python

send messages to: image-sig@python.org
administrivia to: image-sig-request@python.org
_______________