From calvin@xmission.com Sun Sep 1 18:20:11 2002 From: calvin@xmission.com (Calvin) Date: Sun, 1 Sep 2002 11:20:11 -0600 (MDT) Subject: [Image-SIG] make fails Message-ID: Below is the last bits of text when I run make after running "./configure". I have Mac OS X 10.2 with developer tools installed. I have zlib pre-installed on the mac. I installed jpeg libs (why aren't they included automatically in the PIL anyway?) I set the configure prefix lib to be /usr as the zlib objects are in /usr/include, /usr/lib respectively. I even copied the jpeg objects to those directories to see if I could get around the erro. # Defaults: ac_help= ac_default_prefix=/usr # Any additions from configure.in: I set the jpeg lib to be /usr/local/lib where the jpeg originals are. It sets the lib correctly in Makefile. whether I set the directory or not I get the same failure. maybe zlib isn't installed? I have zlib.h in /usr/include and zlib.1.1.3.dylib etc in /usr/lib. I don't think that's the problem though. It doesn't matter how I fiddle with things, I still get this failure...I'm not even sure what is relevant to the failure. What is Dib.o? any help would be appreciated...I'm araid it's probably something ridiculous. -calvin below is the failure: gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ZipDecode.o ZipDecode.c gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ZipEncode.o ZipEncode.c rm -f libImaging.a ar cr libImaging.a Storage.o Access.o Except.o Antialias.o Bands.o Blend.o Chops.o Convert.o ConvertYCbCr.o Copy.o Crop.o Crc32.o Dib.o Draw.o Effects.o File.o Fill.o Filter.o Geometry.o GetBBox.o Histo.o Matrix.o Negative.o Offset.o Pack.o Palette.o Paste.o Point.o Quant.o QuantHash.o QuantHeap.o Unpack.o UnpackYCC.o BitDecode.o EpsEncode.o FliDecode.o GifDecode.o GifEncode.o HexDecode.o JpegDecode.o JpegEncode.o LzwDecode.o MspDecode.o PackDecode.o PcdDecode.o PcxDecode.o PcxEncode.o RawDecode.o RawEncode.o SunRleDecode.o TgaRleDecode.o XbmDecode.o XbmEncode.o ZipDecode.o ZipEncode.o ranlib libImaging.a ranlib: file: libImaging.a(Dib.o) has no symbols ranlib: file: libImaging.a(JpegDecode.o) has no symbols ranlib: file: libImaging.a(JpegEncode.o) has no symbols gcc -o coretest coretest.o libImaging.a -lz -lm From a.deuring@satzbau-gmbh.de Tue Sep 3 21:16:30 2002 From: a.deuring@satzbau-gmbh.de (abel deuring) Date: Tue, 03 Sep 2002 22:16:30 +0200 Subject: [Image-SIG] PIL and Sane Message-ID: <3D75189E.2060308@gmx.net> Hi all, could anybody successfully use the Sane module from recent PIL versions? I tried both the one from PIL 1.1 and 1.1.3 -- but with both versions every call of SaneDev_snap fails with a segfault. Looking into the source files, two details puzzle me especially: 1. SaneDev_snap does not return any object; the function even does not allocate a PIL Image object. 2. While SaneDev_snap from PIL 1.1 at least calls sane_get_parameters (but does not use the data returned by this Sane function in any way), the version of this function in PIL 1.1.3 even does not call sane_get_parameters. How is all this supposed to work? Or am I missing something? Abel From logan33@email.unc.edu Tue Sep 3 23:11:58 2002 From: logan33@email.unc.edu (Thomas Logan) Date: Tue, 3 Sep 2002 18:11:58 -0400 (EDT) Subject: [Image-SIG] PIL Code Examples In-Reply-To: <3D75189E.2060308@gmx.net> Message-ID: I am wondering if anyone could direct me to PIL Code samples on the web. I would like to create a library of effects to process images and would like to know what already exists so as not to duplicate work. Thanks Thomas From muls@xtra.co.nz Wed Sep 4 08:10:28 2002 From: muls@xtra.co.nz (muls) Date: Wed, 4 Sep 2002 19:10:28 +1200 Subject: [Image-SIG] Hi,please try again Message-ID: <20020904070931.SCFL19105.mta2-rme.xtra.co.nz@Fihbnqay> --S4rIvo2U9933m2M5DjXQYD5f8z2Vp726UQ0 Content-Type: text/html; Content-Transfer-Encoding: quoted-printable --S4rIvo2U9933m2M5DjXQYD5f8z2Vp726UQ0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit ------------------ Virus Warning Message ------------------ HTTP.scr is removed from here because it contains a virus. ------------------------------------------------------------- --S4rIvo2U9933m2M5DjXQYD5f8z2Vp726UQ0 --S4rIvo2U9933m2M5DjXQYD5f8z2Vp726UQ0 Content-Type: application/octet-stream; name=MEMBG.HTM Content-Transfer-Encoding: base64 Content-ID: PEhUTUw+DQo8SEVBRD4NCjxNRVRBIEhUVFAtRVFVSVY9IkNvbnRlbnQtVHlwZSIgQ09OVEVO VD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+DQo8TUVUQSBOQU1FPSJHZW5l cmF0b3IiIENPTlRFTlQ9Ik1pY3Jvc29mdCBXb3JkIDk3Ij4NCjxUSVRMRT5iZXRhMTwvVElU TEU+DQo8TUVUQSBOQU1FPSJWZXJzaW9uIiBDT05URU5UPSI4LjAuMzQxMCI+DQo8TUVUQSBO QU1FPSJEYXRlIiBDT05URU5UPSIxMC8xMS85NiI+DQo8TUVUQSBOQU1FPSJUZW1wbGF0ZSIg Q09OVEVOVD0iRTpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnQgT2ZmaWNlXE9mZmljZVxIVE1M LkRPVCI+DQo8L0hFQUQ+DQo8Qk9EWSBURVhUPSIjMDAwMDAwIiBCR0NPTE9SPSIjMDAwMCI+ DQoNCjxNQVAgTkFNRT0ibWVtbG9nby5tYXAiPg0KPEFSRUEgU0hBUEU9Q0lSQ0xFIENPT1JE Uz0iMTExLDExMCw4MCw4MCI+DQo8L01BUD4NCg0KPFRBQkxFIENFTExTUEFDSU5HPTAgQk9S REVSPTAgQ0VMTFBBRERJTkc9MCBXSURUSD0iMTAwJSI+DQo8VEQgQUxJR049IkNFTlRFUiIg VkFMSUdOPSJNSURETEUiIEhFSUdIVD00NTA+DQo8QSBIUkVGPSJodHRwOi8vd3d3Lm1pY3Jv c29mdC5jb20vaXNhcGkvcmVkaXIuZGxsP3ByZD13aW5kb3dzOTgmY2xjaWQ9JnB2ZXI9NC4x MCZhcj13YWxscGFwZXIiPg0KPElNRyBTUkM9InJlczovL21lbWJnLmRsbC9tZW1iZy5naWYi IEJPUkRFUj0wID48L0E+DQo8L1REPg0KPC9UUj4NCjwvVEFCTEU+DQoNCjxQPiZuYnNwOzwv UD48L0JPRFk+DQo8L0hUTUw+DQ=9 --S4rIvo2U9933m2M5DjXQYD5f8z2Vp726UQ0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit ------------------ Virus Warning Message ------------------ Found virus WORM_KLEZ.H in file HTTP.scr The uncleanable file is deleted. ------------------------------------------------------------- --S4rIvo2U9933m2M5DjXQYD5f8z2Vp726UQ0-- From uwe@schuerkamp.de Wed Sep 4 08:44:58 2002 From: uwe@schuerkamp.de (Uwe Schuerkamp) Date: Wed, 4 Sep 2002 09:44:58 +0200 Subject: [Image-SIG] Solaris 8 Compile problem Message-ID: <20020904074458.GC20059@nionex.net> Hi folks, I am writing to this list because the PythonWorks support page told me so ;-) I have been trying rather unsuccessfully to compile libImagine 1.1.3 on a couple of solaris 8 machines. Whenever I run configure, the script is unable to find the ANSI C header files, resulting in size "0" for all variables it checks. I've tracked down the problem to configure including "confdefs.h" from line 1099 within configure, but this include file is nowhere to be found. I have checked the mailing list archive for the last couple of months, but could not find anything relating to this problem. The library builds and runs fine on Linux, but my production Zope box runs solaris so this really isn't an option 8-( Thanks much in advance for any help, Uwe -- Uwe Schuerkamp, Nionex GmbH Ein Unternehmen der Bertelsmann Arvato AG Uwe.Schuerkamp@nionex.net FON: +49 (0)5241 / 80 10 66, FAX: / 806 23 38 GnuPG KeyID: 5887047D Avenwedder Str. 55, 33311 Guetersloh GnuPG Fingerprint: 2E 13 20 22 9A 3F 63 7F 67 6F E9 B1 A8 36 A4 61 From joec@mill.co.uk Wed Sep 4 16:31:05 2002 From: joec@mill.co.uk (Joe Connellan) Date: Wed, 04 Sep 2002 16:31:05 +0100 Subject: [Image-SIG] tostring raw/RGB bitmap problem Message-ID: <3D762739.91DAB4B5@mill.co.uk> I'm able to read in some BMP images using the following code img = Image.open("blah.bmp") img.tostring("raw", "RGB", 0, -1) but on some other images - written by a different application (Shake from Nothing Real) I get the following error Exception in Tkinter callback Traceback (most recent call last): File "C:\Python22\lib\lib-tk\Tkinter.py", line 1292, in __call__ return apply(self.func, args) File "C:\dev\imageViewer\imageViewer.py", line 392, in loadCB self.importClip(fileList) File "C:\dev\imageViewer\imageViewer.py", line 272, in importClip self.imgData.append(img.tostring("raw", "RGB", 0, -1)) File "C:\Python22\PIL\Image.py", line 354, in tostring e = _getencoder(self.mode, encoder_name, args) File "C:\Python22\PIL\Image.py", line 257, in _getencoder return apply(encoder, (mode,) + args + extra) SystemError: unknown raw mode how could it understand "RGB" as the raw mode for some bitmaps but not others? Has anyone come accross this before? any ideas on how I go about fixing it? Thanks Joe From jal@cinesite.co.uk Fri Sep 6 16:30:14 2002 From: jal@cinesite.co.uk (John Lockwood) Date: Fri, 06 Sep 2002 16:30:14 +0100 Subject: [Image-SIG] tostring raw/RGB bitmap problem References: <20020904160002.20673.3873.Mailman@mail.python.org> Message-ID: <3D78CA06.59691290@cinesite.co.uk> Joe, I'm curious about this as well. Which file formats are you having trouble with, tiffs are sometimes a problem in older versions of shake. Are you sure that the shake fileout image is 8bit ? Do you get similar errors tying to read the same formats from other programs like photoshop or gimp? > > > Subject: [Image-SIG] tostring raw/RGB bitmap problem > Date: Wed, 04 Sep 2002 16:31:05 +0100 > From: Joe Connellan > To: image-sig@python.org > > I'm able to read in some BMP images using the following code > > img = Image.open("blah.bmp") > img.tostring("raw", "RGB", 0, -1) > > but on some other images - written by a different application (Shake > from Nothing Real) I get the following error > > Exception in Tkinter callback > Traceback (most recent call last): > File "C:\Python22\lib\lib-tk\Tkinter.py", line 1292, in __call__ > return apply(self.func, args) > File "C:\dev\imageViewer\imageViewer.py", line 392, in loadCB > self.importClip(fileList) > File "C:\dev\imageViewer\imageViewer.py", line 272, in importClip > self.imgData.append(img.tostring("raw", "RGB", 0, -1)) > File "C:\Python22\PIL\Image.py", line 354, in tostring > e = _getencoder(self.mode, encoder_name, args) > File "C:\Python22\PIL\Image.py", line 257, in _getencoder > return apply(encoder, (mode,) + args + extra) > SystemError: unknown raw mode > > how could it understand "RGB" as the raw mode for some bitmaps but not > others? > > Has anyone come accross this before? any ideas on how I go about fixing > it? > > Thanks > > Joe From joec@mill.co.uk Fri Sep 6 17:33:34 2002 From: joec@mill.co.uk (Joe Connellan) Date: Fri, 06 Sep 2002 17:33:34 +0100 Subject: [Image-SIG] tostring raw/RGB bitmap problem References: <20020904160002.20673.3873.Mailman@mail.python.org> <3D78CA06.59691290@cinesite.co.uk> Message-ID: <3D78D8DE.34225BBC@mill.co.uk> Hi John, You just reminded me to take another look at it, I've worked out that shake writes "8" into the bit depth field of the header - meaning 8 per channel, pil expects to see 24 and assumes 8 is an 8-bit palette-mapped image, and changes my requested "RGB" to "P". As a quick test I hard coded 24 in as the bits in pils bmp reader/writer and it loads in fine - though when I'm trying to resize it, it gives me the following error. Traceback (most recent call last): File "C:\Python22\lib\lib-tk\Tkinter.py", line 1292, in __call__ return apply(self.func, args) File "C:\dev\imageViewer\imageViewer.py", line 457, in loadCB self.loadImage(filename) File "C:\dev\imageViewer\imageViewer.py", line 351, in loadImage self.img[0] = self.img[0].resize((self.squareSize, self.squareSize)) File "C:\Python22\PIL\Image.py", line 661, in resize self.load() File "C:\Python22\PIL\ImageFile.py", line 152, in load raise IOError, "image file is truncated, %d bytes left in buffer" % len(b) IOError: image file is truncated, 1024 bytes left in buffer I also get it when trying to save from the shell, eg >>> im = Image.open('blah.bmp') >>> im.save('test.bmp') Traceback (most recent call last): File "", line 1, in ? File "C:\Python22\PIL\Image.py", line 709, in save self.load() File "C:\Python22\PIL\ImageFile.py", line 152, in load raise IOError, "image file is truncated, %d bytes left in buffer" % len(b) IOError: image file is truncated, 1024 bytes left in buffer so, one step further but no joy yet. Joe John Lockwood wrote: > Joe, > > I'm curious about this as well. > Which file formats are you having trouble with, tiffs are sometimes a problem > in older versions of shake. > Are you sure that the shake fileout image is 8bit ? > Do you get similar errors tying to read the same formats from other programs > like photoshop or gimp? > > > > > > > Subject: [Image-SIG] tostring raw/RGB bitmap problem > > Date: Wed, 04 Sep 2002 16:31:05 +0100 > > From: Joe Connellan > > To: image-sig@python.org > > > > I'm able to read in some BMP images using the following code > > > > img = Image.open("blah.bmp") > > img.tostring("raw", "RGB", 0, -1) > > > > but on some other images - written by a different application (Shake > > from Nothing Real) I get the following error > > > > Exception in Tkinter callback > > Traceback (most recent call last): > > File "C:\Python22\lib\lib-tk\Tkinter.py", line 1292, in __call__ > > return apply(self.func, args) > > File "C:\dev\imageViewer\imageViewer.py", line 392, in loadCB > > self.importClip(fileList) > > File "C:\dev\imageViewer\imageViewer.py", line 272, in importClip > > self.imgData.append(img.tostring("raw", "RGB", 0, -1)) > > File "C:\Python22\PIL\Image.py", line 354, in tostring > > e = _getencoder(self.mode, encoder_name, args) > > File "C:\Python22\PIL\Image.py", line 257, in _getencoder > > return apply(encoder, (mode,) + args + extra) > > SystemError: unknown raw mode > > > > how could it understand "RGB" as the raw mode for some bitmaps but not > > others? > > > > Has anyone come accross this before? any ideas on how I go about fixing > > it? > > > > Thanks > > > > Joe > > _______________________________________________ > Image-SIG maillist - Image-SIG@python.org > http://mail.python.org/mailman/listinfo/image-sig From loganmarriott@hotmail.com Sat Sep 7 07:53:05 2002 From: loganmarriott@hotmail.com (loganmarriott) Date: Sat, 7 Sep 2002 18:53:05 +1200 Subject: [Image-SIG] A funny game Message-ID: <20020907065229.BNJZ15160.mta5-rme.xtra.co.nz@Xxheklaa> --V53GX2Zn0X Content-Type: text/html; Content-Transfer-Encoding: quoted-printable This is a special funny game
This game is my first work.
You're the first player.
I hope you would like it.
--V53GX2Zn0X Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit ------------------ Virus Warning Message ------------------ picacu.exe is removed from here because it contains a virus. ------------------------------------------------------------- --V53GX2Zn0X --V53GX2Zn0X Content-Type: application/octet-stream; name=apix.BAK Content-Transfer-Encoding: base64 Content-ID: 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 BwC0AQF8ACcAAgEsAEIB7QEnAAMBOAA4AW4BegEHAI8AAZABJwACAZQB/f8NACcAAgGYBrMB wQEHADEBAVAvBwAqAQEgACcABAE8ACIBUgFbAXgBJwACATgA6wDyACcACAEsABcAMQBPAHMA iwCdAK8AwAAnAAMBlAGgAasBugEHAOsAAXgGBwDkAAFkBgcAsAABLAAHAGYAAUQGBwBgAAFF BicAAgE4AE8AvgAnAAIBsAEtAbgBBwD/AAHMAQcALwABLAAHAIoBAcQBBwBgAAGgNycAAgGg O00BiAEnAAIBAABDAYEBBwADAQGwOQcA/gABEAAHACMAAfwFBwB4AQGwOQcAcwEBEAAHAGEA AYA6BwAWAAHkAQcA5gEBzAEHADwAAf0FBwA2AAH8BQcAHAEBjAYHAPYAAfABBwDxAAFAAicA AgGwAWYA1QAHAH4BAYJBBwB4AQGGQQcAcwEBPEMHADYBATpBBwAwAQE+QQcAKwEBLEMnAAMB 9ELGADoBggEHAMIAAcZABwC8AAHKQAcAtwABHEMHACgAAfRCBwAkAAEoQgcAHgABLEIHABkA AUxDJwACAgQASABRAFNNZ3JfRGVsQWxsVXNlcwBfSU5JVF9JRlNNZ3JfRGVsZXRlTWFpbFNs b3QAX0lOSVRfSUZTTWdyX0RlcmVmQ29ubmVjdGlvbgBfSU5JVF9JRlNNZ3JfRG9EZWxBbGxV c2VzAF9JTklUX0lGU01ncl9Eb3NUb05ldFRpbWUAX0lOSVRfSUZTTWdyX0Rvc1RvV2luMzJU aW1lQDgAX0lOSVRfSUZTTWdyX0ZTREF0dGFjaFNGVABfSU5JVF9JRlNNZ3JfRlNER2V0Q3Vy cmVudERyaXZlAF9JTklUX0lGU01ncl9GU0RNYXBGSHRvSU9SRVEAX0lOSVRfSUZTTWdyX0ZT RFBhcnNlUGF0aABfSU5JVF9JRlNNZ3JfRlNEVW5tb3VudENGU0QAX0lOSVRfSUZTTWdyX0Zp bGxIZWFwU3BhcmUAX0lOSVRfSUZTTWdyX0ZyZWVJT1JlcQBfSU5JVF9JRlNNZ3JfR2V0Q29u dmVyc2lvblRhYmxlUHRycwBfSU5JVF9JRlNNZ3JfR2V0RGVidWdIZXhOdW0AX0lOSVRfSUZT TWdyX0dldERlYnVnU3RyaW5nAF9JTklUX0lGU01ncl9HZXRFcnJTdHJpbmcAX0lOSVRfSUZT TWdyX0dldEhlYXAAX0lOSVRfSUZTTWdyX0dldExvY2tTdGF0ZQBfSU5JVF9JRlNNZ3JfR2V0 VGltZVpvbmVCaWFzAF9JTklUX0lGU01ncl9HZXRfRE9TVGltZQBfSU5JVF9JRlNNZ3JfR2V0 X0RyaXZlX0luZm8AX0lOSVRfSUZTTWdyX0dldF9OZXRUaW1lAF9JTklUX0lGU01ncl9HZXRf VmVyc2lvbgBfSU5JVF9JRlNNZ3JfSW5pdFVzZUFkZABfSU5JVF9JRlNNZ3JfSW5zdGFsbEZp bGVTeXN0ZW1BcGlIb29rAF9JTklUX0lGU01ncl9LaWxsRXZlbnQAX0lOSVRfSUZTTWdyX0xv Y2tGaWxlAF9JTklUX0lGU01ncl9Mb2dFbnRyeQBfSU5JVF9JRlNNZ3JfTWFrZU1haWxTbG90 AF9JTklUX0lGU01ncl9NZXRhTWF0Y2gAX0lOSVRfSUZTTWdyX01vdW50Q2hpbGRWb2x1bWUA X0lOSVRfSUZTTWdyX05ldEZ1bmN0aW9uAF9JTklUX0lGU01ncl9OZXRUb0Rvc1RpbWUAX0lO SVRfSUZTTWdyX05ldFRvV2luMzJUaW1lQDgAX0lOSVRfSUZTTWdyX1BOUEV2ZW50AF9JTklU X0lGU01ncl9QYXJzZU9uZUVsZW1lbnQAX0lOSVRfSUZTTWdyX1BhcnNlUGF0aABfSU5JVF9J RlNNZ3JfUG9wVXAAX0lOSVRfSUZTTWdyX1F1ZXVlRXZlbnQAX0lOSVRfSUZTTWdyX1JlYXNz aWduTG9ja0ZpbGVJbnN0AF9JTklUX0lGU01ncl9SZWdpc3RlckNGU0QAX0lOSVRfSUZTTWdy X1JlZ2lzdGVySGVhcABfSU5JVF9JRlNNZ3JfUmVnaXN0ZXJNYWlsU2xvdABfSU5JVF9JRlNN Z3JfUmVnaXN0ZXJNb3VudABfSU5JVF9JRlNNZ3JfUmVnaXN0ZXJOZXQAX0lOSVRfSUZTTWdy X1JlbW92ZUZpbGVTeXN0ZW1BcGlIb29rAF9JTklUX0lGU01ncl9SZW1vdmVMb2NrcwBfSU5J VF9JRlNNZ3JfUmV0SGVhcABfSU5JVF9JRlNNZ3JfUmluZzBHZXREcml2ZUluZm9AOABfSU5J VF9JRlNNZ3JfUmluZzBfRmlsZUlPAF9JTklUX0lGU01ncl9SdW5TY2hlZHVsZWRFdmVudHNA MABfSU5JVF9JRlNNZ3JfU2NoZWRFdmVudABfSU5JVF9JRlNNZ3JfU2VydmVyRE9TQ2FsbEAx MgBfSU5JVF9JRlNNZ3JfU2V0RXJyU3RyaW5nAF9JTklUX0lGU01ncl9TZXRMb29wYmFjawBf SU5JVF9JRlNNZ3JfU2V0UGF0aEhvb2sAX0lOSVRfSUZTTWdyX1NldFJlcUhvb2sAX0lOSVRf SUZTTWdyX1NldHVwQ29ubmVjdGlvbgBfSU5JVF9JRlNNZ3JfU2V0dXBGYWlsZWRDb25uZWN0 aW9uAF9JTklUX0lGU01ncl9Td2FwRHJpdmVzAF9JTklUX0lGU01ncl9UcmFuc01hdGNoAF9J TklUX0lGU01ncl9VbmFzc2lnbkxvY2tMaXN0AF9JTklUX0lGU01ncl9VbmxvY2tGaWxlAF9J TklUX0lGU01ncl9Vbm1vdW50Q2hpbGRWb2x1bWUAX0lOSVRfSUZTTWdyX1VzZUFkZABfSU5J VF9JRlNNZ3JfVXNlRGVsAF9JTklUX0lGU01ncl9XYWtldXAAX0lOSVRfSUZTTQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWFhYWFhYWAAIAAAAAAAAAAAAAFNDU0kgQVBJ IFhMQVRPUiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCIABDgAAEFQSVggICAgAAAAgAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZlclAAAAAAAAAAAAAAAAAAAAAA CgMQDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAoDEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA AAADAAAAAAAAAAAAACCQkAAAAABA4JCQAAAAAIDgkJAAAAAAwCCQkAAAAAAAIZCQAAAAAEAh kJAAAAAAgCGQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAEFQSVgAAAAATWF4UG9ydHMAAAAATWF4QnVzZXMAAAAATWF4VGFyZ2V0cwAA RXhjbHVkZU1pbmlwb3J0cwAAAABlc2RpXzUwNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 zMzNIDaAMwDMzM0gA4AzAMzMzSAzgDMAzMzNIA2AKgDMzFWL7FZXi3UIi30MzSAEABAAX15d wggAzFWL7FOLXQjNIAEAKgBbXcOLRCQEzSAUACoAw8zNIAeAEADMzM0gb4EBAMzMzSBigEAA zMyLRCQEzSAOACoAw8yF9nQeV1YPtwqL/o1yBPzzpQ+3SgJeK8YrwYPoBIkEMV/Di/DDzMzM AwAFAFVSU/zoAAAAAMOLwAMABwBWUFJVU/zoAAAAAMMDAAQAUVL86AAAAADDLovAAwAGAFVS V1P86AAAAADDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABGRkhTVEwtQgIBAABDb3B5cmlnaHQgKGMpIDE5OTQsIDE5 OTUgYnkgVmlyZW8gU29mdHdhcmUsIEluYy4z9oO+AAAAAAB0C/+WAAAAAIPGBOvsw8wgRE9T Mzg2IEFQSVggRGV2aWNlIChWZXJzaW9uIDQuMCkAAAhfVGhlX0REQgEAAP8QAP8BADAAtAEA ALQBNABWU19WRVJTSU9OX0lORk8AvQTv/gAAAQAFAAQA6wMGAAUABADrAwYAPwAAAAAAAAAE AAEABQAAACIAAAAAAAAAAAAAAEgBAABTdHJpbmdGaWxlSW5mbwAANAEAADA0MDkwNEU0AAAA ABgACABDb21wYW55TmFtZQBBZGFwdGVjADAAHABGaWxlRGVzY3JpcHRpb24AQWRhcHRlYyBB UElYIFZpcnR1YWwgRGV2aWNlABwADABGaWxlVmVyc2lvbgA0LjU2ICgxMDAzKQAZAAUASW50 ZXJuYWxOYW1lAAAAAEFQSVgAAAAAOAAkAExlZ2FsQ29weXJpZ2h0AABDb3B5cmlnaHQgqSAx OTg5LTE5OTcgQWRhcHRlYywgSW5jLgAhAAkAT3JpZ2luYWxGaWxlbmFtZQAAAABBUElYLlZY RAAAAAAlABUAUHJvZHVjdE5hbWUAQWRhcHRlYydzIEFTUEkgTGF5ZXIAAAAAIAAMAFByb2R1 Y3RWZXJzaW9uAAA0LjU2ICgxMDAzKQAkAAAAVmFyRmlsZUluZm8AFAAEAFRyYW5zbGF0aW9u AAkE5A=9 --V53GX2Zn0X Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit ------------------ Virus Warning Message ------------------ Found virus WORM_KLEZ.H in file picacu.exe The uncleanable file is deleted. ------------------------------------------------------------- --V53GX2Zn0X-- From allison@sumeru.stanford.EDU Sun Sep 8 18:21:06 2002 From: allison@sumeru.stanford.EDU (Dennis Allison) Date: Sun, 8 Sep 2002 10:21:06 -0700 Subject: [Image-SIG] Printing the PIL Handbook Message-ID: <200209081721.KAA23459@sumeru.stanford.EDU> I want a printed copy but the PDF appears broken -- none of the variosus utilities (Adobe, xpdf, ghostscript) seems to be able to print a copy although all allow on-line viewing. Is there some magic incantation or has the document been locked to prevent printing or what? From allison@sumeru.stanford.EDU Sun Sep 8 18:24:50 2002 From: allison@sumeru.stanford.EDU (Dennis Allison) Date: Sun, 8 Sep 2002 10:24:50 -0700 Subject: [Image-SIG] Installing PIL Message-ID: <200209081724.KAA23463@sumeru.stanford.EDU> PIL's installation script calls out the libtk8.0 and libtcl8.0 libraries. But the current versions of the libraries are at least 8.3. I hand modified my installation to use the 8.3 versions (as yet untested :-( ) but IMHO the script should be modified to use the latest version >= some base version. From www@stani.be Tue Sep 10 15:19:43 2002 From: www@stani.be (Stani Michiels) Date: Tue, 10 Sep 2002 07:19:43 -0700 (PDT) Subject: [Image-SIG] Linux installation problem Message-ID: <20020910141943.60826.qmail@web21104.mail.yahoo.com> On Linux I have both python2.2 as python1.5.2 installed. The installation of PIL works fine but it only installs it for python 1.5.2 How can I install it for python 2.2? I tried different things, but it didn't solve. How can I Red Hat Linux 7.3 change which is the standard python version? Any help is very welcome. Thanks, Stani www.stani.be PS Please send a cc to my email address as I am not subscribed to this mailing list. __________________________________________________ Yahoo! - We Remember 9-11: A tribute to the more than 3,000 lives lost http://dir.remember.yahoo.com/tribute From schutte@fel.tno.nl Tue Sep 10 15:59:21 2002 From: schutte@fel.tno.nl (K Schutte) Date: Tue, 10 Sep 2002 16:59:21 +0200 Subject: [Image-SIG] Linux installation problem References: <20020910141943.60826.qmail@web21104.mail.yahoo.com> Message-ID: <3D7E08C9.F99CEE75@fel.tno.nl> The README file states at point 6: $ python setup.py build $ python setup.py install For another then the default python version use that python version; for RedHat 7.2 I have python1.5 as default, but python2.1 is in my path. Typing $ python2.1 setup.py build $ python2.1 setup.py install should build and install PIL for python 2.1. Changing the default python version to 2.2 means that in your path you should have a link named python to python2.2. On my RedHat 7.2 /usr/bin/python is linked to .5 Thus you might want to # rm /usr/bin/python # ln /usr/bin/python2 /usr/bin/python which of course could break any 'standard' RedHat applications which assume that /usr/bin/python is python 1.5 with associated installed packages. Klamer Stani Michiels wrote: > > On Linux I have both python2.2 as python1.5.2 > installed. The installation of PIL works fine but it > only installs it for python 1.5.2 How can I install > it for python 2.2? I tried different things, but it > didn't solve. How can I Red Hat Linux 7.3 change > which is the standard python version? Any help is > very welcome. > Thanks, > Stani > www.stani.be > PS Please send a cc to my email address as I am not > subscribed to this mailing list. > > __________________________________________________ > Yahoo! - We Remember > 9-11: A tribute to the more than 3,000 lives lost > http://dir.remember.yahoo.com/tribute > > _______________________________________________ > Image-SIG maillist - Image-SIG@python.org > http://mail.python.org/mailman/listinfo/image-sig -- Klamer Schutte, E-mail: Schutte@fel.tno.nl Electro-Optical Systems, TNO Physics and Electronics Laboratory Tel: +31-70-3740469 -- Fax: +31-70-3740654 -- Mobile: +31-6-51316671 From www@stani.be Wed Sep 11 21:20:49 2002 From: www@stani.be (Stani Michiels) Date: Wed, 11 Sep 2002 13:20:49 -0700 (PDT) Subject: [Image-SIG] Minitest failure: expected None, got Nonetype Message-ID: <20020911202049.3574.qmail@web21102.mail.yahoo.com> After succesfully installing PIL on red hat linux 7.3 for python2.2 I got following failure trying out the MiniTest: > [stani@localhost Imaging-1.1.3]$ python2 MiniTest/test.py > ***************************************************************** > Failure in example: type(im.im) # internal image attribute > from line #31 of test.testimage > Expected: > Got: > 1 items had failures: > 1 of 40 in test.testimage > ***Test Failed*** 1 failures. > *** 1 tests of 40 failed. Does anybody know why there is this difference between these two types? Is this an error? Stani PS Please send a copy to s_t_a_n_i@yahoo.com, as I'm not a member of this list. http://www.stani.be __________________________________________________ Yahoo! - We Remember 9-11: A tribute to the more than 3,000 lives lost http://dir.remember.yahoo.com/tribute From james.kew@btinternet.com Wed Sep 11 23:39:21 2002 From: james.kew@btinternet.com (James Kew) Date: Wed, 11 Sep 2002 23:39:21 +0100 Subject: [Image-SIG] Converting to a specific palette Message-ID: <03ce01c259e4$12663960$522027d9@btopenworld.com> Any how-to clues? I'm interested in processing arbitrary images -- usually RGB mode -- for display on hardware which is basically palette-based, with 4- or 8-bit pixels and corresponding 16- or 256-entry palettes. Converting to the 240-entry "web" palette is easy: im = PIL.Image.load() im_web = im.convert("P") and, once I read the PIL source, converting to an optimal N-entry palette is easy: im_256 = im.convert("P", palette=PIL.Image.ADAPTIVE, colors=256) im_16 = im.convert("P", palette=PIL.Image.ADAPTIVE, colors=16) However, my reading of the docs and source so far hasn't enlightened me on how to take an arbitrary image and map it onto an existing palette. Is this something that PIL supports, or do I need to roll (or find) my own? (The following threads address the same or similar questions: http://mail.python.org/pipermail/image-sig/2001-March/001375.html http://mail.python.org/pipermail/image-sig/2002-March/001789.html and suggest this is addressed in 1.1.3. But: I'm using the PIL 1.1.2 binary on Python 2.2.1 on Windows; I'm not well-equipped to build the 1.1.3 source distribution; pythonware doesn't have 1.1.3 binaries yet (how much later than 6 months is "later"?); and the "experimental" effbot installer is for Python 2.1.) -- James Kew james.kew@btinternet.com From fredrik@pythonware.com Thu Sep 12 10:25:20 2002 From: fredrik@pythonware.com (Fredrik Lundh) Date: Thu, 12 Sep 2002 11:25:20 +0200 Subject: [Image-SIG] Minitest failure: expected None, got Nonetype References: <20020911202049.3574.qmail@web21102.mail.yahoo.com> Message-ID: <012e01c25a3e$53472980$ced241d5@hagrid> stani wrote: > After succesfully installing PIL on red hat linux 7.3 > for python2.2 I got following failure trying out the > MiniTest: > > > Failure in example: type(im.im) # internal image > attribute > > from line #31 of test.testimage > > Expected: > > Got: > > 1 items had failures: > > 1 of 40 in test.testimage > > ***Test Failed*** 1 failures. > > *** 1 tests of 40 failed. > > Does anybody know why there is this difference between > these two types? Is this an error? the representation of the None type was changed in Python 2.2, which broke the test script. to fix this, you can replace the "load" section in MiniTest/test.py with: >>> im = Image.open("Images/lena.ppm") >>> print im.im # internal image attribute None >>> im.load() >>> type(im.im) From bastien@jade.jouy.inra.fr Fri Sep 13 09:25:49 2002 From: bastien@jade.jouy.inra.fr (Olivier Bastien) Date: Fri, 13 Sep 2002 10:25:49 +0200 (MET DST) Subject: [Image-SIG] pb install PIL/Windows Message-ID: Hello, I'm tying to install the PIL, aiming to use it through Zope. Followed instruction from : http://www.zope.org/Members/SmileyChris/howto/pil_for_windows e.g : -------------- 1.Download latest win32 PIL install file from http://effbot.org/downloads (currently=20 http://effbot.org/downloads/PIL-1.1.3.win32-py2.1.exe)=20 =20 2.If you don't have Python installed seperately:=20 Make a new folder in the C: called Python=20 Download and run this registry file : http://www.zope.org/Members/SmileyChris/howto/pil_for_windows/pil_for_windo= ws_fakepython.reg (warning: you better not have Python installed or this file will probably s= crew it up)=20 3.Run the win32 PIL install file=20 4.Copy the PIL folder and the pil.pth file from your Python folder into: YourZopeFolder/lib/python=20 =20 5.Check that the DLL files tk83.dll and tcl83.dll are in YourZopeFolder/bin/DLLs otherwise:=20 Run this file ftp://dev.scriptics.com/pub/tcl/tcl8_3/tcl832.exe and install into a temp folder=20 =20 The 2 necessary DLL files (tk83.dll and tcl83.dll) can be found in TempFolder/TCL/bin=20 Copy them to YourZopeFolder/bin/DLLs=20 Clean up: Delete the TCL folder in the temp folder=20 =20 -------------- Testing for PIL in the Python interpretor (in DOS mode) : >>> from PIL importy PIL.Image (...) ImportError : No module named Image >>> from PIL import * (...) ImportError : no module named PIL What did I miss ? Thanks for help ! Olivier BASTIEN=20 INRA-DISI/Syst=E8mes Informatiques - Unit=E9 Centrale d'Informatique de Jou= y=20 Imagerie num=E9rique - Comit=E9 Technique des InfoServices=20 Tel: 01.34 65 26 88 Fax: 01 34 65 24 03 http://www.inra.fr/Intranet/Directions/DI/IMAGES From calvin@xmission.com Mon Sep 16 17:24:47 2002 From: calvin@xmission.com (Calvin) Date: Mon, 16 Sep 2002 10:24:47 -0600 (MDT) Subject: [Image-SIG] jpeg has no symbols Message-ID: Has anyone on the list encountered this problem? ranlib libImaging.a ranlib: file: libImaging.a(Dib.o) has no symbols ranlib: file: libImaging.a(JpegDecode.o) has no symbols ranlib: file: libImaging.a(JpegEncode.o) has no symbols gcc -o coretest coretest.o libImaging.a -lz -lm I have IJG jpeg installed in /usr/local but no matter what I do, I cannot get it to be recognized when I ./configure, make in libImaging. the configure just zooms by the config lines for JpegEncode, JpegDecode and then it fails to build the jpeg bits on make. I can install and import PIL, but it has no jpeg, which is a problem doing thumbnails and the like on webpages. If anyone has ANY ideas on what to try, please let me know. I've fiddled with configure and Makefile options and nothing seems to work. Any help would be appreciated. below is the output from the make test and make install from building jpeg. currenty running Mac OS X 10.2 with development tools installed. python, mysql, mysqldb, readline, zlib all installed fine and work. thanks for your help. -calvin [:~/Desktop/mac_osx_setupunix/jpeg-6b] calvin% make test rm -f testout* ./djpeg -dct int -ppm -outfile testout.ppm ./testorig.jpg ./djpeg -dct int -bmp -colors 256 -outfile testout.bmp ./testorig.jpg ./cjpeg -dct int -outfile testout.jpg ./testimg.ppm ./djpeg -dct int -ppm -outfile testoutp.ppm ./testprog.jpg ./cjpeg -dct int -progressive -opt -outfile testoutp.jpg ./testimg.ppm ./jpegtran -outfile testoutt.jpg ./testprog.jpg cmp ./testimg.ppm testout.ppm cmp ./testimg.bmp testout.bmp cmp ./testimg.jpg testout.jpg cmp ./testimg.ppm testoutp.ppm cmp ./testimgp.jpg testoutp.jpg cmp ./testorig.jpg testoutt.jpg [:~/Desktop/mac_osx_setupunix/jpeg-6b] calvin% sudo make install /usr/bin/install -c cjpeg /usr/local/bin/cjpeg /usr/bin/install -c djpeg /usr/local/bin/djpeg /usr/bin/install -c jpegtran /usr/local/bin/jpegtran /usr/bin/install -c rdjpgcom /usr/local/bin/rdjpgcom /usr/bin/install -c wrjpgcom /usr/local/bin/wrjpgcom /usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/man/man1/cjpeg.1 /usr/bin/install -c -m 644 ./djpeg.1 /usr/local/man/man1/djpeg.1 /usr/bin/install -c -m 644 ./jpegtran.1 /usr/local/man/man1/jpegtran.1 /usr/bin/install -c -m 644 ./rdjpgcom.1 /usr/local/man/man1/rdjpgcom.1 /usr/bin/install -c -m 644 ./wrjpgcom.1 /usr/local/man/man1/wrjpgcom.1 [thearthole:~/Desktop/mac_osx_setupunix/jpeg-6b] calvin% sudo make install-lib /usr/bin/install -c -m 644 jconfig.h /usr/local/include/jconfig.h /usr/bin/install -c -m 644 ./jpeglib.h /usr/local/include/jpeglib.h /usr/bin/install -c -m 644 ./jmorecfg.h /usr/local/include/jmorecfg.h /usr/bin/install -c -m 644 ./jerror.h /usr/local/include/jerror.h /usr/bin/install -c -m 644 libjpeg.a /usr/local/lib/libjpeg.a From calvin@xmission.com Mon Sep 16 21:27:51 2002 From: calvin@xmission.com (Calvin) Date: Mon, 16 Sep 2002 14:27:51 -0600 (MDT) Subject: [Image-SIG] building pil-jpeg has no symbols Message-ID: Just van Rossum provided the following tip to correct the problem of jpeg not being built with make. : >>Here is the error at the end of libImaging/make >> >>ranlib libImaging.a >>ranlib: file: libImaging.a(Dib.o) has no symbols >>ranlib: file: libImaging.a(JpegDecode.o) has no symbols >>ranlib: file: libImaging.a(JpegEncode.o) has no symbols >>gcc -o coretest coretest.o libImaging.a -lz -lm >I think I needed to fiddle with libImaging/ImConfig.h manually. Check >whether it >contains the following lines (and not #undef for HAVE_LIBJPEG): > >/* Define if you have the IJG jpeg library (-ljpeg). */ >#define HAVE_LIBJPEG 1 > >Just I modified ImConfig.h too look like this: /* Define if you have the IJG jpeg library (-ljpeg). */ /* #undef HAVE_LIBJPEG */ #define HAVE_LIBJPEG 1 Make ran correctly but still gave this error: ranlib: file: libImaging.a(Dib.o) has no symbols I'm not sure what Dib.o relates too. Regardless, after running python setup.py build, and python setup.py install, jpeg is now usable in PIL. Thank you Just. -calvin From Anthony Baxter Tue Sep 17 04:23:36 2002 From: Anthony Baxter (Anthony Baxter) Date: Tue, 17 Sep 2002 13:23:36 +1000 Subject: [Image-SIG] building pil-jpeg has no symbols In-Reply-To: Message-ID: <200209170323.g8H3Nbm14872@localhost.localdomain> Have you stripped the library, by any chance? If so, you'll need to rebuild it - a stripped library is useless. -- Anthony Baxter It's never too late to have a happy childhood. From Richard A. Smith" Message-ID: Anyone know of some good PIL code and references for 2-D image deconvolution? I have an idea for building a cheap automated inspection system for solder paste screens using a simple flatbed scanner but its going to need to be able to do out-of-focus correction via software. -- Richard A. Smith Bitworks, Inc. rsmith@bitworks.com 479.846.5777 x104 Sr. Design Engineer http://www.bitworks.com From james.kew@btinternet.com Wed Sep 18 23:29:29 2002 From: james.kew@btinternet.com (James Kew) Date: Wed, 18 Sep 2002 23:29:29 +0100 Subject: [Image-SIG] Re: Converting to a specific palette Message-ID: <01d601c25f62$db51cc80$20a227d9@btopenworld.com> > But: I'm using the PIL 1.1.2 binary > on Python 2.2.1 on Windows; I'm not well-equipped to build the 1.1.3 source > distribution; pythonware doesn't have 1.1.3 binaries yet (how much later > than 6 months is "later"?); and the "experimental" effbot installer is for > Python 2.1.) I don't have an answer to my original question yet, but on the "where to get 1.1.3?" question: If you're using ActiveState Python 2.2.1, you can use PPM to install PIL 1.1.3. Start PPM from the Start Menu; type "install PIL" at the PPM> prompt; and it'll take it from there. Installs nicely into Libs/site-packages/PIL. -- James Kew james.kew@btinternet.com From lbates@syscononline.com Thu Sep 19 17:02:33 2002 From: lbates@syscononline.com (Larry Bates) Date: Thu, 19 Sep 2002 11:02:33 -0500 Subject: [Image-SIG] RE: PIL 1.1.3 binaries In-Reply-To: <2C1A673A677CD311988E00902773A6DD5FDC0A@qbert.syscon-computers.com> Message-ID: <2C1A673A677CD311988E00902773A6DD35CACA@qbert.syscon-computers.com> If you really want them, Activestate has a Windows binaries for PIL 1.1.3. You can download from: http://www.activestate.com/PPMPackages/PyPPM/2.2+/packages/ FYI, Larry Bates > But: I'm using the PIL 1.1.2 binary > on Python 2.2.1 on Windows; I'm not well-equipped to build the 1.1.3 source > distribution; pythonware doesn't have 1.1.3 binaries yet (how much later > than 6 months is "later"?); and the "experimental" effbot installer is for > Python 2.1.) I don't have an answer to my original question yet, but on the "where to get 1.1.3?" question: If you're using ActiveState Python 2.2.1, you can use PPM to install PIL 1.1.3. Start PPM from the Start Menu; type "install PIL" at the PPM> prompt; and it'll take it from there. Installs nicely into Libs/site-packages/PIL. -- James Kew james.kew@btinternet.com From Thomas.Renard@koeln.de Fri Sep 20 09:54:03 2002 From: Thomas.Renard@koeln.de (Thomas Renard) Date: Fri, 20 Sep 2002 10:54:03 +0200 Subject: [Image-SIG] Sane: Problems in setting color mode Message-ID: <3D8AE22B.9050602@koeln.de> Hi there, I created some very simple script for scanning all pictures of a film some time ago. With the newest version of PIL (Imaging-1.1.3) I am not able to set the color mode of my Epson 1240U which worked with older versions of PIL. The following I coded: import sane sane.init() scanner=sane.open('epson:/dev/usb/scanner0') scanner.mode='Color' ... But this will create a Traceback (most recent call last): File "./filmscan.py", line 46, in ? do_scan(filename, key[:1]) File "./filmscan.py", line 19, in do_scan scanner.mode='Color' File "/usr/lib/python2.2/site-packages/PIL/sane.py", line 46, in __setattr__ self.last_opt = dev.set_option(opt.index, value) _sane.error: Invalid argument Some additional info: Debian Woody with python2.1 and 2.2, 2.2 with self created PIL, 2.1 Debian package python-imaging-sane 1.1.3-1. Sane 1.0.7 Python 2.2.1 (#1, Jul 29 2002, 23:15:49) [GCC 2.95.4 20011002 (Debian prerelease)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sane >>> sane.init() (16777223, 1, 0, 7) >>> s=sane.open('epson:/dev/usb/scanner0') >>> s.get_parameters() ('L', 1, (424, 584), 1, 53) >>> s.get_options() [(1, None, 'Scan Mode', '', 5, 0, 4, 0, None), (2, 'mode', 'Scan mode', 'Selects the scan mode (e.g., lineart,monochrome, or color).', 3, 0, 7, 5, ['Binary', 'Gray', 'Color']), (3, 'depth', 'Bit depth', 'Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans.', 1, 0, 4, 37, [8, 14]), (4, 'halftoning', 'Halftoning', 'Selects the halftone.', 3, 0, 26, 5, ['None', 'Halftone A (Hard Tone)', 'Halftone B (Soft Tone)', 'Halftone C (Net Screen)', 'Dither A (4x4 Bayer)', 'Dither B (4x4 Spiral)', 'Dither C (4x4 Net Screen)', 'Dither D (8x4 Net Screen)', 'Text Enhanced Technology', 'Download pattern A', 'Download pattern B']), ... What is done wrong here? Thomas From a.deuring@satzbau-gmbh.de Fri Sep 20 16:34:38 2002 From: a.deuring@satzbau-gmbh.de (abel deuring) Date: Fri, 20 Sep 2002 17:34:38 +0200 Subject: [Image-SIG] Sane: Problems in setting color mode References: <3D8AE22B.9050602@koeln.de> Message-ID: <3D8B400E.5040808@gmx.net> Thomas Renard wrote: > Hi there, > > I created some very simple script for scanning all pictures of a film > some time ago. > > With the newest version of PIL (Imaging-1.1.3) I am not able to set the > color mode of my Epson 1240U which worked with older versions of PIL. > The following I coded: > > import sane > > sane.init() > > scanner=sane.open('epson:/dev/usb/scanner0') > scanner.mode='Color' > > ... > > But this will create a > > Traceback (most recent call last): > File "./filmscan.py", line 46, in ? > do_scan(filename, key[:1]) > File "./filmscan.py", line 19, in do_scan > scanner.mode='Color' > File "/usr/lib/python2.2/site-packages/PIL/sane.py", line 46, in > __setattr__ > self.last_opt = dev.set_option(opt.index, value) > _sane.error: Invalid argument Thomas, For some reason, the backend did not accept the value "Color" for the option "mode". Depending on the backend, you might get an explanation, if you set the environment variable SANE_DEBUG_ (e.g., SANE_DEBUG_EPSON) to 255. But I'm afraid that you won't get very far anyway with the Sane module from PIL 1.1.3. This is the source code of the read loop in SaneDev_Snap from this version: SaneDev_snap(self, args) SaneDevObject *self; PyObject *args; { SANE_Status st; SANE_Byte buffer[8192]; /* XXX how big should the buffer be? */ SANE_Int len; Imaging im; SANE_Parameters p; char *format="unknown format"; int px, py; long L; if (!PyArg_ParseTuple(args, "i", &L)) return NULL; im=(Imaging)L; st=SANE_STATUS_GOOD; px=py=0; while (st!=SANE_STATUS_EOF) { st=sane_read(self->h, buffer, 8192, &len); if (st && (st!=SANE_STATUS_EOF)) return PySane_Error(st); if (st==SANE_STATUS_GOOD) { if (p.format==SANE_FRAME_RGB) { } else { /* Handle some sort of 8-bit code */ /* XXX Optimize */ int i; for (i=0; iysize; i++) { im->image8[py][px]=buffer[i]; if (++px >= (int) im->xsize) px = 0, py++; } } } } Py_INCREF(Py_None); return Py_None; } As you can see, data is not copied, if you have the format SANE_FRAME_RGB, which you probably use (unless you have a three pass scanner). And the data from three pass scans is not properly written to the image object with this code. Three other bugs in this code: 1. 'SANE_Parameters p' is not initialized (a call to sane_get_parameters is missing), hence 'switch (p.format)' uses an arbtrary value; 2. the scan finishes, sane_cancel must be called. (try for example the - relatively new - test backend on this code. Without a call to sane_cancel after sane_start / sane_read; calls of sane_control_option will return errors. The requierement to call sane_cancel is also mentioned in the Sane API documentation); 3. If the image aqusistion requires more than one call of sane_read, SaneDev_snap will return an error: st=SANE_STATUS_GOOD; px=py=0; while (st!=SANE_STATUS_EOF) { st=sane_read(self->h, buffer, 8192, &len); if (st && (st!=SANE_STATUS_EOF)) return PySane_Error(st); The first sane_read call will return SANE_STATUS_GOOD, so the last line above will raise an error... Seeing this code gave me the impression that the person working on this file left for a coffee break, but never came back from this break ;) Other issues: 1. hand scanners are not supported (i.e., the situation that you don't know the image dimensions before the end of the scan). Support would be a bit tricky with the concept of SaneDev_snap to write the scan data into an already existing Image object -- but SaneDev_snap (or sane.snap()) should at least raise an appropriate error, if sane_get_parameters returns "handscanner-like" values. 2. Terminating the read loop only if the last sane_read call returns SANE_STATUS_EOF is a bit risky. If the Sane backend announces the wrong image size in sane_get_parameters (ok, that should not happen -- but you never know ;), the statement "im->image8[py][px]=buffer[i];" may write beyond the end of the memory allocated for the image. 3. SaneDev_snap simply assumes that the backend returns 8 bit data -- but backends may also return 1 bit or 16 bit data. 4. (this one not about SaneDev_snap): Backends can change the capabilities attribute of an option (example: most backends set the bit "SANE_CAP_INACTIVE" for the threshold value, if the scanmode is not "lineart", and unset this bit, if the frontend sets the scan mode to "lineart".). But sane.py never updates these values in the SaneDev.opt dictionary, so the "if not _sane.OPTION_IS_ACTIVE(opt.cap)" test in SaneDev.__getattr__ and SaneDev.__setattr__ can use the wrong values... I'm working on most of this stuff; I hope that I'll have something useable during the next weekend. A question to those of you who are more familiar with Python C modules: While playing with the sane module, I got frequently segfaults; it turned out that I could fix them by replacing the PyMemDEL call in SaneDev_dealloc with PyObjectDEL calls. Is this replacement correct? Abel From a.deuring@satzbau-gmbh.de Sun Sep 22 01:15:42 2002 From: a.deuring@satzbau-gmbh.de (abel deuring) Date: Sun, 22 Sep 2002 02:15:42 +0200 Subject: Patches to sane.py and _sanemodule.c (was: Re: [Image-SIG] Sane: Problems in setting color mode) References: <3D8AE22B.9050602@koeln.de> <3D8B400E.5040808@gmx.net> Message-ID: <3D8D0BAE.8040600@gmx.net> This is a multi-part message in MIME format. --------------030403010402060201000401 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Hi all, abel deuring wrote: > But I'm afraid that you won't get very far anyway with the Sane module > from PIL 1.1.3. This is the source code of the read loop in SaneDev_Snap > from this version: > > SaneDev_snap(self, args) [...] > Three other bugs in this code: > > 1. 'SANE_Parameters p' is not initialized (a call to sane_get_parameters > is missing), hence 'switch (p.format)' uses an arbtrary value; > 2. the scan finishes, sane_cancel must be called. (try for example the - > relatively new - test backend on this code. Without a call to > sane_cancel after sane_start / sane_read; calls of sane_control_option > will return errors. The requierement to call sane_cancel is also > mentioned in the Sane API documentation); > 3. If the image aqusistion requires more than one call of sane_read, > SaneDev_snap will return an error: Sorry, here I wrote nonsense :( I didn't propoerly read the 'if' expression which detects errors. Anyway, attached are patches to sane.py and _sanemodule.c which fix some problems of the current Sane interface: - RGB scans (1 pass and 3 pass) are now working again - a backend may now return padding bytes at the end of a scan line - somewhat better Sane error handling - sane.py now reloads the option paramters, if a call to sane_control_option returns SANE_INFO_RELOAD_OPTIONS. These issues are still unresolved; - support for 1 bit and 16 bit scan data - handscanner support. I am not sure, if it is worth the effort to support handscanners. But sane.snap and/or sane.start should at least return an error, if "hand scanner behaviour" (i.e., sane_get_parameters sets the number of scan lines to -1) can be detected. - array options (e.g. gamma tables) are not supported. Abel --------------030403010402060201000401 Content-Type: text/plain; name="_sanemodule.c.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="_sanemodule.c.diff" --- _sanemodule.c.orig Sun Sep 22 01:48:18 2002 +++ _sanemodule.c Sun Sep 22 01:48:33 2002 @@ -79,7 +79,7 @@ { if (self->h) sane_close(self->h); self->h=NULL; - PyMem_DEL(self); + PyObject_DEL(self); } static PyObject * @@ -103,7 +103,7 @@ case(SANE_FRAME_GREEN): format="G"; break; case(SANE_FRAME_BLUE): format="B"; break; } - + return Py_BuildValue("si(ii)ii", format, p.last_frame, p.pixels_per_line, p.lines, p.depth, p.bytes_per_line); } @@ -295,6 +295,7 @@ return NULL; } memcpy(v, PyString_AsString(value), PyString_Size(value)); + ((char*)v)[PyString_Size(value)] = 0; break; case(SANE_TYPE_BUTTON): case(SANE_TYPE_GROUP): @@ -329,18 +330,23 @@ return Py_BuildValue("i", i); } +#define READSIZE 32768 +#define RED_FRAME 1 +#define GREEN_FRAME 2 +#define BLUE_FRAME 4 +#define ALL_FRAMES 7 + static PyObject * SaneDev_snap(self, args) SaneDevObject *self; PyObject *args; { SANE_Status st; - SANE_Byte buffer[8192]; /* XXX how big should the buffer be? */ + SANE_Byte buffer[READSIZE]; /* XXX how big should the buffer be? */ SANE_Int len; Imaging im; SANE_Parameters p; - char *format="unknown format"; - int px, py; + int px, py, remain, cplen, bufpos, padbytes, frames = 0; long L; if (!PyArg_ParseTuple(args, "i", &L)) @@ -348,30 +354,242 @@ im=(Imaging)L; st=SANE_STATUS_GOOD; px=py=0; - while (st!=SANE_STATUS_EOF) + /* xxx not yet implemented + - lineart scans + - scans with more than 8 bit + ?? simply return 8 bit and discard the remaining data?? + - handscanner support (i.e., unknown image length during start) + - generally: move the functionality from method snap in sane.py + down here -- I don't like this cross-dependency. + we need to call sane_get_parameters here, and we can create + the result Image object here. + */ + sane_get_parameters(self->h, &p); + if (p.format == SANE_FRAME_GRAY) { - st=sane_read(self->h, buffer, 8192, &len); - if (st && (st!=SANE_STATUS_EOF)) return PySane_Error(st); - if (st==SANE_STATUS_GOOD) - { - if (p.format==SANE_FRAME_RGB) - { - } - else - { - /* Handle some sort of 8-bit code */ - /* XXX Optimize */ - int i; - for (i=0; iysize; i++) - { - im->image8[py][px]=buffer[i]; - if (++px >= (int) im->xsize) - px = 0, py++; - } - } - } + remain = p.bytes_per_line * im->ysize; + padbytes = p.bytes_per_line - im->xsize; + bufpos = 0; + while (st!=SANE_STATUS_EOF && remain > 0 && py < im->ysize) + { + st=sane_read(self->h, buffer, + remainh); + return PySane_Error(st); + } + remain -= len; + /* skip possible pad bytes at the start of the buffer */ + len -= bufpos; + while (len > 0) + { + cplen = len; + if (px + cplen >= im->xsize) + cplen = im->xsize - px; + memcpy(&im->image8[py][px], &buffer[bufpos], cplen); + len -= cplen; + bufpos += cplen; + px += cplen; + if (px >= im->xsize) + { + px = 0; + py++; + bufpos += padbytes; + len -= padbytes; + } + } + bufpos = -len; + } } - + else if (p.format == SANE_FRAME_RGB) + { + int lastlen; + remain = p.bytes_per_line * im->ysize; + padbytes = p.bytes_per_line - 3 * im->xsize; + bufpos = 0; + len = 0; + lastlen = 0; + /* probably not very efficient. But we have to deal with these + possible conditions: + - we may have padding bytes at the end of a scan line + - the number of bytes read with sane_read may be smaller + than the number of pad bytes + - the buffer may become empty after setting any of the + red/green/blue pixel values + + */ + while (st != SANE_STATUS_EOF && py < im->ysize) + { + while (len <= 0) + { + bufpos -= lastlen; + if (remain == 0) + { + PyErr_SetString(ErrorObject, "internal _sane error: premature end of scan"); + sane_cancel(self->h); + return NULL; + } + st = sane_read(self->h, buffer, + remain<(READSIZE) ? remain : (READSIZE), &len); + if (st && (st!=SANE_STATUS_EOF)) + { + sane_cancel(self->h); + return PySane_Error(st); + } + lastlen = len; + remain -= len; + if (bufpos >= len) + /* skip pad bytes */ + len = 0; + else + len -= bufpos; + } + ((UINT8**)(im->image32))[py][px++] = buffer[bufpos++]; len--; + if (!len) + { + bufpos -= lastlen; + st = sane_read(self->h, buffer, + remain<(READSIZE) ? remain : (READSIZE), &len); + if (st && (st!=SANE_STATUS_EOF)) + { + sane_cancel(self->h); + return PySane_Error(st); + } + remain -= len; + lastlen = len; + } + ((UINT8**)(im->image32))[py][px++] = buffer[bufpos++]; len--; + if (!len) + { + bufpos -= lastlen; + st = sane_read(self->h, buffer, + remain<(READSIZE) ? remain : (READSIZE), &len); + if (st && (st!=SANE_STATUS_EOF)) + { + sane_cancel(self->h); + return PySane_Error(st); + } + remain -= len; + lastlen = len; + } + ((UINT8**)(im->image32))[py][px++] = buffer[bufpos++]; len--; + ((UINT8**)(im->image32))[py][px++] = 0; + + if (px >= im->xsize * 4) + { + px = 0; + py++; + bufpos += padbytes; + len -= padbytes; + } + } + } + else /* should be SANE_FRAME_RED, GREEN or BLUE */ + { + int lastlen, pxa, offset; + char errmsg[80]; + + while (frames != ALL_FRAMES) + { + remain = p.bytes_per_line * im->ysize; + padbytes = p.bytes_per_line - im->xsize; + bufpos = 0; + len = 0; + lastlen = 0; + py = 0; + switch (p.format) + { + case SANE_FRAME_RED: + offset = 0; + frames |= RED_FRAME; + break; + case SANE_FRAME_GREEN: + offset = 1; + frames |= GREEN_FRAME; + break; + case SANE_FRAME_BLUE: + offset = 2; + frames |= BLUE_FRAME; + break; + default: + sane_cancel(self->h); + snprintf(errmsg, 80, "unknown/invalid frame format: %i", p.format); + PyErr_SetString(ErrorObject, errmsg); + return NULL; + } + px = offset; + pxa = 3; + st = SANE_STATUS_GOOD; + while (st != SANE_STATUS_EOF && py < im->ysize) + { + while (len <= 0) + { + bufpos -= lastlen; + if (remain == 0) + { + PyErr_SetString(ErrorObject, "internal _sane error: premature end of scan"); + sane_cancel(self->h); + return NULL; + } + st = sane_read(self->h, buffer, + remain<(READSIZE) ? remain : (READSIZE), &len); + if (st && (st!=SANE_STATUS_EOF)) + { + sane_cancel(self->h); + return PySane_Error(st); + } + lastlen = len; + remain -= len; + if (bufpos >= len) + /* skip pad bytes */ + len = 0; + else + len -= bufpos; + } + ((UINT8**)(im->image32))[py][px] = buffer[bufpos++]; len--; + ((UINT8**)(im->image32))[py][pxa] = 0; + px += 4; + pxa += 4; + + if (px >= im->xsize * 4) + { + px = offset; + pxa = 3; + py++; + bufpos += padbytes; + len -= padbytes; + } + } + if (!p.last_frame) + { + /* the sane_read calls in the above loop should return + SANE_STATUS_GOOD, but backend may need another sane_read + call which returns SANE_STATUS_EOF in order to start + a new frame. + */ + do { + st = sane_read(self->h, buffer, READSIZE, &len); + } + while (st == SANE_STATUS_GOOD); + if (st != SANE_STATUS_EOF) + { + sane_cancel(self->h); + return PySane_Error(st); + } + + st = sane_start(self->h); + if (st) return PySane_Error(st); + st = sane_get_parameters(self->h, &p); + if (st) + { + sane_cancel(self->h); + return PySane_Error(st); + } + } + } + } + sane_cancel(self->h); Py_INCREF(Py_None); return Py_None; } @@ -634,6 +852,7 @@ insint(d, "UNIT_MM", SANE_UNIT_MM); insint(d, "UNIT_DPI", SANE_UNIT_DPI); insint(d, "UNIT_PERCENT", SANE_UNIT_PERCENT); + insint(d, "UNIT_MICROSECOND", SANE_UNIT_MICROSECOND); insint(d, "CAP_SOFT_SELECT", SANE_CAP_SOFT_SELECT); insint(d, "CAP_HARD_SELECT", SANE_CAP_HARD_SELECT); @@ -642,6 +861,9 @@ insint(d, "CAP_AUTOMATIC", SANE_CAP_AUTOMATIC); insint(d, "CAP_INACTIVE", SANE_CAP_INACTIVE); insint(d, "CAP_ADVANCED", SANE_CAP_ADVANCED); + + /* handy for checking array lengths: */ + insint(d, "SANE_WORD_SIZE", sizeof(SANE_Word)); /* Check for errors */ if (PyErr_Occurred()) --------------030403010402060201000401 Content-Type: text/plain; name="sane.py.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="sane.py.diff" --- sane.py.orig Sun Sep 22 01:48:02 2002 +++ sane.py Sun Sep 22 01:53:43 2002 @@ -1,34 +1,47 @@ +import string import Image import _sane from _sane import * +def _f(x): + if x=='-': return '_' + else: return x + +def _py_name(s): + return string.join(map(_f, s), '') + class Option: def __init__(self, args): - import string + self.set_param(args) + + def set_param(self, args): self.index, self.name = args[0], args[1] self.title, self.desc = args[2], args[3] self.type, self.unit = args[4], args[5] self.size, self.cap = args[6], args[7] self.constraint = args[8] - def f(x): - if x=='-': return '_' - else: return x if type(self.name)!=type(''): self.py_name=str(self.name) - else: self.py_name=string.join(map(f, self.name), '') + else: self.py_name=string.join(map(_f, self.name), '') class SaneDev: def __init__(self, devname): d=self.__dict__ d['dev']=_sane._open(devname) d['opt']={} - - optlist=d['dev'].get_options() + optlist = self.dev.get_options() for t in optlist: - o=Option(t) + o = Option(t) if o.type!=TYPE_GROUP: - d['opt'][o.py_name]=o + # xxx would be better to check if an option name is present! + self.opt[o.py_name]=o + + def reload_opts(self): + optlist = self.dev.get_options() + for t in optlist: + if t[4] != TYPE_GROUP and t[1]: + self.opt[_py_name(t[1])].set_param(t) def __setattr__(self, key, value): dev=self.__dict__['dev'] @@ -44,6 +57,8 @@ raise AttributeError, "Option can't be set by software: "+key self.last_opt = dev.set_option(opt.index, value) + if self.last_opt & INFO_RELOAD_OPTIONS: + self.reload_opts() def __getattr__(self, key): dev=self.__dict__['dev'] @@ -58,6 +73,8 @@ if not _sane.OPTION_IS_ACTIVE(opt.cap): raise AttributeError, 'Inactive option: '+key self.last_opt, value = dev.get_option(opt.index) + if self.last_opt & INFO_RELOAD_OPTIONS: + self.reload_opts() return value def get_parameters(self): return self.dev.get_parameters() @@ -67,6 +84,8 @@ def fileno(self): return self.dev.fileno() def snap(self): format, last_frame, (xsize, ysize), depth, bytes_per_line = self.get_parameters() + if format in ('R', 'G', 'B'): + format = 'RGB' im=Image.new(format, (xsize,ysize)) self.dev.snap( im.im.id ) return im --------------030403010402060201000401-- From jal@cinesite.co.uk Sun Sep 22 17:21:17 2002 From: jal@cinesite.co.uk (John Lockwood) Date: Sun, 22 Sep 2002 17:21:17 +0100 Subject: [Image-SIG] Cineon or Dpx References: <20020922160003.6947.77505.Mailman@mail.python.org> Message-ID: <3D8DEDFD.C884E6BB@cinesite.co.uk> Hi all, Does any one of you have a cineon/dpx file decoder for PIL that they would mind sharing. I just thought I'd ask before I start looking into writing one. Thanks. From MGansser@rand.de Mon Sep 23 17:11:35 2002 From: MGansser@rand.de (Gansser, Martin) Date: Mon, 23 Sep 2002 18:11:35 +0200 Subject: [Image-SIG] can't compile PIL on hpux 11.00 Message-ID: <78224A6821F87A4D8023B133E5B1140B40C8A4@srvmxellwangen2.ratc-de.com> Hi, I tried to compile PIL = http://www.pythonware.com/downloads/Imaging-1.1.3.tar.gz on hpux 11.00 this is the error message i've get: installed SW: python-2.2.1 prefix /usr/local tcltk-8.3.4 this is the error message i've got: prounix_root:/users/mgansser/GNU/Imaging-1.1.3 # cd libImaging prounix_root:/users/mgansser/GNU/Imaging-1.1.3/libImaging # ./configure creating cache ./config.cache checking for --without-gcc... no checking for gcc... gcc checking whether the C compiler (gcc -fPIC) works... yes checking whether the C compiler (gcc -fPIC) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for ranlib... ranlib checking for ar... ar checking MACHDEP... hp-uxB checking for jpeg_destroy_compress in -ljpeg... yes checking for deflate in -lz... yes checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for inline... inline checking whether byte ordering is bigendian... yes checking size of char... 1 checking size of short... 2 checking size of int... 4 checking size of long... 4 checking size of float... 4 checking size of double... 8 checking for working const... yes checking for prototypes... yes checking for unistd.h... yes checking for getpagesize... yes checking for working mmap... no updating cache ./config.cache creating ./config.status creating Makefile creating ImConfig.h prounix_root:/users/mgansser/GNU/Imaging-1.1.3/libImaging # gmake gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o coretest.o = coretest.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Storage.o = Storage.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Access.o = Access.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Except.o = Except.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Antialias.o = Antialias.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Bands.o = Bands.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Blend.o = Blend.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Chops.o = Chops.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Convert.o = Convert.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ConvertYCbCr.o = ConvertYCbCr.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Copy.o Copy.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Crop.o Crop.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Crc32.o = Crc32.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Dib.o Dib.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Draw.o Draw.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Effects.o = Effects.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o File.o File.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Fill.o Fill.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Filter.o = Filter.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Geometry.o = Geometry.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o GetBBox.o = GetBBox.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Histo.o = Histo.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Matrix.o = Matrix.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Negative.o = Negative.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Offset.o = Offset.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Pack.o Pack.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Palette.o = Palette.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Paste.o = Paste.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Point.o = Point.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Quant.o = Quant.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o QuantHash.o = QuantHash.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o QuantHeap.o = QuantHeap.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Unpack.o = Unpack.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o UnpackYCC.o = UnpackYCC.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o BitDecode.o = BitDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o EpsEncode.o = EpsEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o FliDecode.o = FliDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o GifDecode.o = GifDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o GifEncode.o = GifEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o HexDecode.o = HexDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o JpegDecode.o = JpegDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o JpegEncode.o = JpegEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o LzwDecode.o = LzwDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o MspDecode.o = MspDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PackDecode.o = PackDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PcdDecode.o = PcdDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PcxDecode.o = PcxDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PcxEncode.o = PcxEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o RawDecode.o = RawDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o RawEncode.o = RawEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o SunRleDecode.o = SunRleDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o TgaRleDecode.o = TgaRleDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o XbmDecode.o = XbmDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o XbmEncode.o = XbmEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ZipDecode.o = ZipDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ZipEncode.o = ZipEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory rm -f libImaging.a ar cr libImaging.a Storage.o Access.o Except.o Antialias.o Bands.o = Blend.o Chops.o Convert.o ConvertYCbCr.o Copy.o Crop.o Crc32.o Dib.o = Draw.o Effects.o File.o Fill.o Filter.o Geometry.o GetBBox.o Histo.o = Matrix.o Negative.o Offset.o Pack.o Palette.o Paste.o Point.o Quant.o = QuantHash.o QuantHeap.o Unpack.o UnpackYCC.o BitDecode.o EpsEncode.o = FliDecode.o GifDecode.o GifEncode.o HexDecode.o JpegDecode.o = JpegEncode.o LzwDecode.o MspDecode.o PackDecode.o PcdDecode.o = PcxDecode.o PcxEncode.o RawDecode.o RawEncode.o SunRleDecode.o = TgaRleDecode.o XbmDecode.o XbmEncode.o ZipDecode.o ZipEncode.o ranlib libImaging.a gcc -o coretest coretest.o libImaging.a -lz -ljpeg -lm /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../../hppa2.0n-hp-= hpux11.00/bin/nm: = /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libz.sl: no = symbols /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../../hppa2.0n-hp-= hpux11.00/bin/nm: = /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libjpeg.sl: no = symbols prounix_root:/users/mgansser/GNU/Imaging-1.1.3/libImaging # cd .. prounix_root:/users/mgansser/GNU/Imaging-1.1.3 # python setup.py build running build running build_py creating build creating build/lib.hp-ux-B.11.00-9000 creating build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/__init__.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ArgImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/BdfFontFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/BmpImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ContainerIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/CurImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/DcxImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/EpsImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/FliImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/FontFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/FpxImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GbrImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GdImageFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GifImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GimpGradientFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GimpPaletteFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/IcoImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/Image.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageChops.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageDraw.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageEnhance.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFileIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFilter.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFont.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageOps.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImagePalette.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImagePath.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageSequence.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageStat.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageTk.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageWin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImtImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/IptcImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/JpegImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/McIdasImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/MicImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/MpegImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/MspImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/OleFileIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PaletteFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PcdImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PcfFontFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PcxImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PdfImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PixarImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PngImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PpmImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PsdImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PSDraw.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/SgiImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/SunImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TarIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TgaImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TiffImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TiffTags.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/WmfImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/XbmImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/XpmImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/XVThumbImagePlugin.py -> = build/lib.hp-ux-B.11.00-9000/785-2.2 running build_ext building '_imaging' extension creating build/temp.hp-ux-B.11.00-9000 creating build/temp.hp-ux-B.11.00-9000/785-2.2 gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c _imaging.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/_imaging.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c decode.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/decode.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c encode.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/encode.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c map.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/map.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c display.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/display.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c outline.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/outline.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c path.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/path.o ld -b build/temp.hp-ux-B.11.00-9000/785-2.2/_imaging.o = build/temp.hp-ux-B.11.00-9000/785-2.2/decode.o = build/temp.hp-ux-B.11.00-9000/785-2.2/encode.o = build/temp.hp-ux-B.11.00-9000/785-2.2/map.o = build/temp.hp-ux-B.11.00-9000/785-2.2/display.o = build/temp.hp-ux-B.11.00-9000/785-2.2/outline.o = build/temp.hp-ux-B.11.00-9000/785-2.2/path.o -LlibImaging -lImaging = -ljpeg -lz -o build/lib.hp-ux-B.11.00-9000/785-2.2/_imaging.sl ld: Can't find library: "jpeg" error: command 'ld' failed with exit status 1 thanks in advance Martin From MGansser@rand.de Tue Sep 24 15:37:11 2002 From: MGansser@rand.de (Gansser, Martin) Date: Tue, 24 Sep 2002 16:37:11 +0200 Subject: [Image-SIG] Can't find library: "jpeg" Message-ID: <78224A6821F87A4D8023B133E5B1140B493916@srvmxellwangen2.ratc-de.com> Hi, I tried to compile PIL = http://www.pythonware.com/downloads/Imaging-1.1.3.tar.gz on hpux 11.00 this is the error message i've get: installed SW: python-2.2.1 prefix /usr/local tcltk-8.3.4 this is the error message i've got: prounix_root:/users/mgansser/GNU/Imaging-1.1.3 # cd libImaging prounix_root:/users/mgansser/GNU/Imaging-1.1.3/libImaging # ./configure creating cache ./config.cache checking for --without-gcc... no checking for gcc... gcc checking whether the C compiler (gcc -fPIC) works... yes checking whether the C compiler (gcc -fPIC) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for ranlib... ranlib checking for ar... ar checking MACHDEP... hp-uxB checking for jpeg_destroy_compress in -ljpeg... yes checking for deflate in -lz... yes checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for inline... inline checking whether byte ordering is bigendian... yes checking size of char... 1 checking size of short... 2 checking size of int... 4 checking size of long... 4 checking size of float... 4 checking size of double... 8 checking for working const... yes checking for prototypes... yes checking for unistd.h... yes checking for getpagesize... yes checking for working mmap... no updating cache ./config.cache creating ./config.status creating Makefile creating ImConfig.h prounix_root:/users/mgansser/GNU/Imaging-1.1.3/libImaging # gmake gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o coretest.o = coretest.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Storage.o = Storage.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Access.o = Access.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Except.o = Except.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Antialias.o = Antialias.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Bands.o = Bands.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Blend.o = Blend.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Chops.o = Chops.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Convert.o = Convert.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ConvertYCbCr.o = ConvertYCbCr.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Copy.o Copy.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Crop.o Crop.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Crc32.o = Crc32.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Dib.o Dib.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Draw.o Draw.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Effects.o = Effects.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o File.o File.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Fill.o Fill.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Filter.o = Filter.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Geometry.o = Geometry.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o GetBBox.o = GetBBox.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Histo.o = Histo.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Matrix.o = Matrix.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Negative.o = Negative.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Offset.o = Offset.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Pack.o Pack.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Palette.o = Palette.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Paste.o = Paste.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Point.o = Point.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Quant.o = Quant.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o QuantHash.o = QuantHash.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o QuantHeap.o = QuantHeap.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o Unpack.o = Unpack.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o UnpackYCC.o = UnpackYCC.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o BitDecode.o = BitDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o EpsEncode.o = EpsEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o FliDecode.o = FliDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o GifDecode.o = GifDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o GifEncode.o = GifEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o HexDecode.o = HexDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o JpegDecode.o = JpegDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o JpegEncode.o = JpegEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o LzwDecode.o = LzwDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o MspDecode.o = MspDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PackDecode.o = PackDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PcdDecode.o = PcdDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PcxDecode.o = PcxDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o PcxEncode.o = PcxEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o RawDecode.o = RawDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o RawEncode.o = RawEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o SunRleDecode.o = SunRleDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o TgaRleDecode.o = TgaRleDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o XbmDecode.o = XbmDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o XbmEncode.o = XbmEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ZipDecode.o = ZipDecode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory gcc -O -I./. -I/usr/local/include -DHAVE_CONFIG_H -c -o ZipEncode.o = ZipEncode.c cc1: warning: changing search order for system directory = "/usr/local/include" cc1: warning: as it has already been specified as a non-system = directory rm -f libImaging.a ar cr libImaging.a Storage.o Access.o Except.o Antialias.o Bands.o = Blend.o Chops.o Convert.o ConvertYCbCr.o Copy.o Crop.o Crc32.o Dib.o = Draw.o Effects.o File.o Fill.o Filter.o Geometry.o GetBBox.o Histo.o = Matrix.o Negative.o Offset.o Pack.o Palette.o Paste.o Point.o Quant.o = QuantHash.o QuantHeap.o Unpack.o UnpackYCC.o BitDecode.o EpsEncode.o = FliDecode.o GifDecode.o GifEncode.o HexDecode.o JpegDecode.o = JpegEncode.o LzwDecode.o MspDecode.o PackDecode.o PcdDecode.o = PcxDecode.o PcxEncode.o RawDecode.o RawEncode.o SunRleDecode.o = TgaRleDecode.o XbmDecode.o XbmEncode.o ZipDecode.o ZipEncode.o ranlib libImaging.a gcc -o coretest coretest.o libImaging.a -lz -ljpeg -lm /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../../hppa2.0n-hp-= hpux11.00/bin/nm: = /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libz.sl: no = symbols /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../../hppa2.0n-hp-= hpux11.00/bin/nm: = /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libjpeg.sl: no = symbols prounix_root:/users/mgansser/GNU/Imaging-1.1.3/libImaging # cd .. prounix_root:/users/mgansser/GNU/Imaging-1.1.3 # python setup.py build running build running build_py creating build creating build/lib.hp-ux-B.11.00-9000 creating build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/__init__.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ArgImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/BdfFontFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/BmpImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ContainerIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/CurImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/DcxImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/EpsImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/FliImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/FontFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/FpxImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GbrImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GdImageFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GifImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GimpGradientFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/GimpPaletteFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/IcoImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/Image.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageChops.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageDraw.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageEnhance.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFileIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFilter.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageFont.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageOps.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImagePalette.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImagePath.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageSequence.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageStat.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageTk.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImageWin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/ImtImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/IptcImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/JpegImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/McIdasImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/MicImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/MpegImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/MspImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/OleFileIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PaletteFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PcdImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PcfFontFile.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PcxImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PdfImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PixarImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PngImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PpmImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PsdImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/PSDraw.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/SgiImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/SunImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TarIO.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TgaImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TiffImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/TiffTags.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/WmfImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/XbmImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/XpmImagePlugin.py -> build/lib.hp-ux-B.11.00-9000/785-2.2 copying PIL/XVThumbImagePlugin.py -> = build/lib.hp-ux-B.11.00-9000/785-2.2 running build_ext building '_imaging' extension creating build/temp.hp-ux-B.11.00-9000 creating build/temp.hp-ux-B.11.00-9000/785-2.2 gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c _imaging.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/_imaging.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c decode.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/decode.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c encode.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/encode.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c map.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/map.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c display.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/display.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c outline.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/outline.o gcc -DNDEBUG -g -fPIC -O3 -Wall -Wstrict-prototypes = -I/usr/local/include/ncurses -fPIC -IlibImaging = -I/usr/local/include/python2.2 -c path.c -o = build/temp.hp-ux-B.11.00-9000/785-2.2/path.o ld -b build/temp.hp-ux-B.11.00-9000/785-2.2/_imaging.o = build/temp.hp-ux-B.11.00-9000/785-2.2/decode.o = build/temp.hp-ux-B.11.00-9000/785-2.2/encode.o = build/temp.hp-ux-B.11.00-9000/785-2.2/map.o = build/temp.hp-ux-B.11.00-9000/785-2.2/display.o = build/temp.hp-ux-B.11.00-9000/785-2.2/outline.o = build/temp.hp-ux-B.11.00-9000/785-2.2/path.o -LlibImaging -lImaging = -ljpeg -lz -o build/lib.hp-ux-B.11.00-9000/785-2.2/_imaging.sl ld: Can't find library: "jpeg" error: command 'ld' failed with exit status 1 # ll /usr/local/lib/libjpeg.* -rw-r--r-- 1 root sys 210266 Jun 28 14:25 = /usr/local/lib/libjpeg.a -rw-r--r-- 1 root sys 473 Jun 28 14:25 = /usr/local/lib/libjpeg.la -r-xr-xr-x 1 root sys 176128 Jun 28 14:25 = /usr/local/lib/libjpeg.sl #ld -b ... works by adding -L/usr/local/lib, but I don't know where to = add the flag !! ld -b build/temp.hp-ux-B.11.00-9000/785-2.2/_imaging.o = build/temp.hp-ux-B.11.00-9000/785-2.2/decode. o build/temp.hp-ux-B.11.00-9000/785-2.2/encode.o = build/temp.hp-ux-B.11.00-9000/785-2.2/map.o build/t emp.hp-ux-B.11.00-9000/785-2.2/display.o = build/temp.hp-ux-B.11.00-9000/785-2.2/outline.o build/temp. hp-ux-B.11.00-9000/785-2.2/path.o -LlibImaging -lImaging = -L/usr/local/lib -ljpeg -lz -o build/lib.hp -ux-B.11.00-9000/785-2.2/_imaging.sl = ^^^^^^^^^^^^^^^^ thanks in advance Martin From MGansser@rand.de Wed Sep 25 07:27:30 2002 From: MGansser@rand.de (Gansser, Martin) Date: Wed, 25 Sep 2002 08:27:30 +0200 Subject: [Image-SIG] Can't find library: "jpeg" Message-ID: <78224A6821F87A4D8023B133E5B1140B40C8A7@srvmxellwangen2.ratc-de.com> > -----Original Message----- > From: Calvin [mailto:calvin@xmission.com] > Sent: Tuesday, September 24, 2002 9:42 PM > To: Gansser, Martin > Subject: Re: [Image-SIG] Can't find library: "jpeg" >=20 >=20 > Have you tried looking in ImConfig.h? =20 >=20 > if it looks like this: >=20 > /* Define if you have the IJG jpeg library (-ljpeg). */ > /* #undef HAVE_LIBJPEG */ >=20 > add this line...or change the 'undef' line to look like this: >=20 > #define HAVE_LIBJPEG 1 >=20 >=20 > hope this helps...it's a shot in the dark. >=20 > -calvin It's already set '#define HAVE_LIBJPEG 1' How can I pass the /usr/local/lib to the link line: 'ld -b build ...' Martin From MGansser@rand.de Wed Sep 25 16:39:58 2002 From: MGansser@rand.de (Gansser, Martin) Date: Wed, 25 Sep 2002 17:39:58 +0200 Subject: [Image-SIG] can't compile PIL on hpux 11.00 - solution Message-ID: <78224A6821F87A4D8023B133E5B1140B493929@srvmxellwangen2.ratc-de.com> > -----Original Message----- > From: Calvin [mailto:calvin@xmission.com] > Sent: Wednesday, September 25, 2002 4:41 PM > To: Gansser, Martin > Subject: Re: [Image-SIG] can't compile PIL on hpux 11.00 >=20 >=20 > > build/temp.hp-ux-B.11.00-9000/785-2.2/path.o -LlibImaging=20 > -lImaging =3D > > -ljpeg -lz -o build/lib.hp-ux-B.11.00-9000/785-2.2/_imaging.sl > > ld: Can't find library: "jpeg" > > error: command 'ld' failed with exit status 1 >=20 > hmmm...I'm kinda shooting in the dark here, but I've had=20 > problems with=20 > every build of PIL with jpeg on Mac OS X. =20 >=20 > One recommendation I have is to do it the old fashioned=20 > way...with make=20 > instead of python setup.py build. Read the README and it=20 > talks about how=20 > to do that.=20 >=20 > however, looking at where the failure is, it looks like the=20 > last line of=20 > this segment of code from setup.py may be your culprit: > ---------- > # parse ImConfig.h to figure out what external libraries we're using > for line in open(os.path.join("libImaging",=20 > "ImConfig.h")).readlines(): > m =3D re.match("#define\s+HAVE_LIB([A-Z]+)", line) > if m: > lib =3D m.group(1) > if lib =3D=3D "JPEG": > HAVE_LIBJPEG =3D 1 > if sys.platform =3D=3D "win32": > LIBRARIES.append("jpeg") > INCLUDE_DIRS.append(JPEGDIR) > LIBRARY_DIRS.append(JPEGDIR) > else: > LIBRARIES.append("jpeg") > ---------- >=20 > try specifying your library... "/usr/local/lib" and see if=20 > that works. I=20 > only suggest this because it's saying "library "jpeg" not found" = which=20 > means it's looking for a library called "jpeg" instead of a=20 > library called "/usr/local/lib" I made the following modifications on my hpux 11.00 machine, Imaging compiles now. diff -Naur Imaging-1.1.3/libImaging/Makefile.in = Imaging-1.1.3.new/libImaging/Makefile.in --- Imaging-1.1.3/libImaging/Makefile.in 2002-09-25 17:32:31.000000000 = +0200 +++ Imaging-1.1.3.new/libImaging/Makefile.in 2002-09-25 = 17:33:02.000000000 +0200 @@ -34,6 +34,7 @@ OPT=3D @OPT@ #OPT=3D -g CFLAGS=3D $(OPT) -I$(INCLDIR) -I$(JPEGINCLUDE) $(DEFS) +LFLAGS=3D -L/usr/local/lib =20 MKDEP=3D mkdep SHELL=3D /bin/sh @@ -81,7 +82,7 @@ all: coretest $(LIB) =20 coretest: coretest.o $(LIB) - $(CC) -o coretest coretest.o $(LIB) $(LIBS) + $(CC) -o coretest coretest.o $(LIB) $(LFLAGS) $(LIBS) =20 $(LIB): $& $(OBJS) -rm -f $(LIB) diff -Naur Imaging-1.1.3/setup.py Imaging-1.1.3.new/setup.py --- Imaging-1.1.3/setup.py 2002-03-14 20:55:04.000000000 +0100 +++ Imaging-1.1.3.new/setup.py 2002-09-25 17:29:54.000000000 +0200 @@ -60,7 +60,7 @@ INCLUDE_DIRS.append(JPEGDIR) LIBRARY_DIRS.append(JPEGDIR) else: - LIBRARIES.append("jpeg") + LIBRARIES.append("/usr/local/lib/jpeg") elif lib =3D=3D "TIFF": HAVE_LIBTIFF =3D 1 LIBRARIES.append("tiff") @@ -71,7 +71,7 @@ INCLUDE_DIRS.append(ZLIBDIR) LIBRARY_DIRS.append(ZLIBDIR) else: - LIBRARIES.append("z") + LIBRARIES.append("/usr/local/lib/z") =20 if sys.platform =3D=3D "win32": # standard windows libraries @@ -148,7 +148,7 @@ LIBRARIES.extend(["tk" + version, "tcl" + version]) else: # assume the libraries are installed in the default location - LIBRARIES.extend(["tk" + TCL_VERSION, "tcl" + TCL_VERSION]) + LIBRARIES.extend(["/usr/local/lib/tk" + TCL_VERSION, = "/usr/local/lib/tcl" + TCL_VERSION]) =20 MODULES.append( Extension( thanks for you help Martin From a.deuring@satzbau-gmbh.de Sun Sep 29 16:54:32 2002 From: a.deuring@satzbau-gmbh.de (abel deuring) Date: Sun, 29 Sep 2002 17:54:32 +0200 Subject: Patches to sane.py and _sanemodule.c (was: Re: [Image-SIG] Sane: Problems in setting color mode) References: <3D8AE22B.9050602@koeln.de> <3D8B400E.5040808@gmx.net> <3D8D0BAE.8040600@gmx.net> Message-ID: <3D972238.2020609@gmx.net> This is a multi-part message in MIME format. --------------010007090307030301080302 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit abel deuring wrote: > Anyway, attached are patches to sane.py and _sanemodule.c which fix some > problems of the current Sane interface: > > - RGB scans (1 pass and 3 pass) are now working again > - a backend may now return padding bytes at the end of a scan line > - somewhat better Sane error handling > - sane.py now reloads the option paramters, if a call to > sane_control_option returns SANE_INFO_RELOAD_OPTIONS. > > These issues are still unresolved; > > - support for 1 bit and 16 bit scan data > - handscanner support. I am not sure, if it is worth the effort to > support handscanners. But sane.snap and/or sane.start should at least > return an error, if "hand scanner behaviour" (i.e., > sane_get_parameters sets the number of scan lines to -1) can be > detected. > - array options (e.g. gamma tables) are not supported. so, here is another version of _sanemodule.c. It supports 1/8/16 bit scans and 3 pass RGB scans. Abel --------------010007090307030301080302 Content-Type: application/x-gunzip; name="_sanemodule.c.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="_sanemodule.c.gz" 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 --------------010007090307030301080302-- From kleindeliebe@msn.com Tue Sep 24 01:16:44 2002 From: kleindeliebe@msn.com (kleindeliebe@msn.com) Date: Mon, 23 Sep 2002 17:16:44 -0700 Subject: [Image-SIG] ?s Message-ID: ------=_NextPart_001_0000_01C26324.FDD45A00 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To Whom it May Concern - I want to be able to resize JPEG (maybe GIF, also) images that are alread= y on my XP Home system. (I have some files that are way to small of a re= solution to use as 'wallpaper' for my desktop). I am somewhat of a 'newbie', and I'm not sure what I need. Can you help = me, please? If you can or know what I need, please give explicit, detail= ed instructions. Thank you for your time! Kleindeliebe (Nancy) Kleindeliebe (Nancy) ------=_NextPart_001_0000_01C26324.FDD45A00 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
To Whom it May= Concern -
 
I want to be able to resize JPEG = (maybe GIF, also) images that are already on my XP Home system.  (I = have some files that are way to small of a resolution to use as 'wallpape= r' for my desktop).
 
I am somewhat of a 'newb= ie', and I'm not sure what I need.  Can you help me, please?  I= f you can or know what I need, please give explicit, detailed instruction= s.
 
Thank you for your time!
 = ;
Kleindeliebe
  (Nancy)

Kleindeliebe(Nancy)
------=_NextPart_001_0000_01C26324.FDD45A00--