From richard@starfighter.freeuk.com Thu Nov 1 19:09:34 2001 From: richard@starfighter.freeuk.com (Richard Townsend) Date: Thu, 1 Nov 2001 19:09:34 -0000 Subject: [Image-SIG] Display Image from ImageDraw Message-ID: > to register the image with Tk, you must wrap it in an > ImageTk.PhotoImage object. Thanks Fredrik, that works perfectly! regards, Richard Townsend From y_jim542000@yahoo.com Fri Nov 2 19:15:16 2001 From: y_jim542000@yahoo.com (j y) Date: Fri, 2 Nov 2001 11:15:16 -0800 (PST) Subject: [Image-SIG] Imaging "make" question Message-ID: <20011102191516.12754.qmail@web14306.mail.yahoo.com> HI, I have downloaded the Imaging-1.1.2 to my redhat 7.0 box. After i type "Makefile.pre.in" and then "make" , i get the error: /usr/bin/ld: cannot find -ltcl8.o collect2: ld returned 1 exit status make: *** [_imaginggtk.so] Error 1 Any clues what i am missing or should add to my redhat box?. Jim __________________________________________________ Do You Yahoo!? Find a job, post your resume. http://careers.yahoo.com From y_jim542000@yahoo.com Sat Nov 3 00:58:05 2001 From: y_jim542000@yahoo.com (j y) Date: Fri, 2 Nov 2001 16:58:05 -0800 (PST) Subject: [Image-SIG] Imaging package question Message-ID: <20011103005805.43307.qmail@web14302.mail.yahoo.com> hi, I downloaded the Imagng-1.1.2 and tried to run the make -f ... inthe imaginf directory. I got this error: fata: library -lpgeg: not found ultra10.solaris 2.8 is my box. Jim __________________________________________________ Do You Yahoo!? Find a job, post your resume. http://careers.yahoo.com From y_jim542000@yahoo.com Sat Nov 3 21:13:07 2001 From: y_jim542000@yahoo.com (j y) Date: Sat, 3 Nov 2001 13:13:07 -0800 (PST) Subject: [Image-SIG] Python-imaging newbie question Message-ID: <20011103211307.29908.qmail@web14305.mail.yahoo.com> Hi, I find an older rpm version of an python-imaging and installed it on my redhat 7.0. The python that comes with redhat7.0 is not 2.1. Anyway. Where do i start from now. how do i start. what is the next step?. any demos i can run to see some imaging activities on my redhat box?. Jim __________________________________________________ Do You Yahoo!? Find a job, post your resume. http://careers.yahoo.com From jwt@OnJapan.net Sun Nov 4 23:13:44 2001 From: jwt@OnJapan.net (Jim Tittsler) Date: Mon, 5 Nov 2001 08:13:44 +0900 Subject: [Image-SIG] Imaging "make" question In-Reply-To: <20011102191516.12754.qmail@web14306.mail.yahoo.com>; from y_jim542000@yahoo.com on Fri, Nov 02, 2001 at 11:15:16AM -0800 References: <20011102191516.12754.qmail@web14306.mail.yahoo.com> Message-ID: <20011105081344.A17749@server.onjapan.net> On Fri, Nov 02, 2001 at 11:15:16AM -0800, j y wrote: > I have downloaded the Imaging-1.1.2 to my redhat 7.0 [...] > /usr/bin/ld: cannot find -ltcl8.o RedHat 7.0 shipped with tcl 8.3. Change the last line of the Makefile to specify the tcl8.3 and tk8.3 libraries. From fredrik@pythonware.com Mon Nov 5 11:25:43 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Mon, 5 Nov 2001 12:25:43 +0100 Subject: [Image-SIG] Python-imaging newbie question References: <20011103211307.29908.qmail@web14305.mail.yahoo.com> Message-ID: <02c801c165ec$9c1bcf40$0900a8c0@spiff> "jy" wrote: > Where do i start from now. how do i start. > what is the next step?. > any demos i can run to see some imaging activities on > my redhat have you read the tutorial page? http://www.pythonware.com/library/pil/handbook/tutorial.htm From simon@ury.york.ac.uk Tue Nov 6 13:59:53 2001 From: simon@ury.york.ac.uk (Simon Hildrew) Date: Tue, 06 Nov 2001 13:59:53 +0000 Subject: [Image-SIG] paste method in PhotoImage class Message-ID: <3BE7ECD9.30404@ury.york.ac.uk> Hi, I'm trying to paste into a box using the paste method of the PhotoImage class in the ImageTk module. It always seems to paste the data at the beginning of the image and after a brief look at the source code I can't see where it uses the box parameter at all. Is this a known issue, or am I merely not using it correctly. Any advice would be helpful... i'm meant to be presenting this tomorrow....! Cheers, Simon Hildrew From akuchlin@mems-exchange.org Tue Nov 6 20:03:16 2001 From: akuchlin@mems-exchange.org (Andrew Kuchling) Date: Tue, 06 Nov 2001 15:03:16 -0500 Subject: [Image-SIG] Fast updates to PhotoImage Message-ID: I'm experimenting with a protocol in which an image is diced up into a number of tiles, and each tile is sent in a separate UDP packet. A Tkinter + PIL client then receives packets and reassembles the image. Performance is turning out to be a problem. It's acceptable for a small image that measures only 320x240 or thereabouts, but for an 800x600 image, it's too slow. The photo_image.paste() call ends up requiring .18 seconds on my machine, and that's for a single tile; given that the whole image is around 50 tiles, this makes it impossible for the client to present a coherent display. My code creates a PhotoImage and then does photo_image.paste(). Is there some faster way of displaying an image that will be frequently modified? Possible approaches might be: 1) Update a PIL.Image for every tile; that's fast enough to keep up. Update the PhotoImage only once per second or so. (The problem is then our frame rate will be limited to 1 frame/sec.) 2) PhotoImage.paste() ignores its 'box' argument, as someone recently pointed out. Perhaps implementing it would help, so the C Tk_PhotoPutBlock call wouldn't have to handle the entire image. 3) Manage the Tk photo object myself, and handle pasting into the image using Tk's functions. Any suggestions? --amk From richard@starfighter.freeuk.com Wed Nov 7 22:58:25 2001 From: richard@starfighter.freeuk.com (Richard Townsend) Date: Wed, 7 Nov 2001 22:58:25 -0000 Subject: [Image-SIG] Can't print or display PSDraw output. Message-ID: When I use PSDraw() to generate postscript from an image, I can't print it or display it in ghostview. e.g. import Image, PSDraw im = Image.open('lena.gif').convert('L') box = (1*72, 2*72, 7*72, 10*72) outfp = open('lena.ps','w') ps = PSDraw.PSDraw(outfp) ps.begin_document() ps.image(box,im,72) ps.rectangle(box) ps.end_document() When I try to send 'lena.ps' it to the printer, the print job is aborted. When I try to display it in ghostview, I get: Error: /undefined in gsize Operand stack: --nostringval-- Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- Dictionary stack: --dict:994/1241(ro)(G)-- --dict:0/20(G)-- --dict:82/200(L)-- Current allocation mode is local Last OS error: 2 Current file position is 1058 GNU Ghostscript 6.51: Unrecoverable error, exit code 1 Paint Shop Pro also complains about 'undefined in gsize'. Is it possible to use PSdraw() to print images ? regards Richard Townsend From hughett@mercur.uphs.upenn.edu Thu Nov 8 20:01:42 2001 From: hughett@mercur.uphs.upenn.edu (Paul Hughett) Date: Thu, 8 Nov 2001 15:01:42 -0500 Subject: [Image-SIG] Apparent Bug in PIL PhotoImage Function Message-ID: <200111082001.fA8K1gv32656@mercur.uphs.upenn.edu> I've found what appears to be a bug in PIL's ImageTk.PhotoImage function and boiled it down to the following short program. If there is some official place to make bug reports, let me know and I'll make one. Paul Hughett #! /usr/bin/env python ############################################################################## # This script exhibits a possible bug in the Python Imaging Library. # You can work around it by uncommenting the "global tkimg0" statement # below. Substitute the name of any BMP file on your system below. ############################################################################## from Tkinter import * import Image, ImageTk class imagewin : # Create and initialize def __init__(self, root) : # global tkimg0 self.root = root self.imageframe = Frame(root) self.image0 = Canvas(self.imageframe) self.image0.pack() self.imageframe.pack() img0 = Image.open("101_A10_0.bmp") img0.thumbnail((256,256)) tkimg0 = ImageTk.PhotoImage(img0) self.image0.create_image(0, 0, anchor=NW, image=tkimg0) root = Tk() fest = imagewin(root) root.mainloop() root.destroy() From fredrik@pythonware.com Thu Nov 8 20:59:26 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Thu, 8 Nov 2001 21:59:26 +0100 Subject: [Image-SIG] Apparent Bug in PIL PhotoImage Function References: <200111082001.fA8K1gv32656@mercur.uphs.upenn.edu> Message-ID: <017e01c16898$423a9de0$ced241d5@hagrid> Paul Hughett wrote: > I've found what appears to be a bug in PIL's ImageTk.PhotoImage > function and boiled it down to the following short program. If there > is some official place to make bug reports, let me know and I'll make > one. it's a Tkinter feature; see the FAQ for details: http://www.python.org/doc/FAQ.html#4.69 From kathy@airotaxi.net Thu Nov 8 23:19:08 2001 From: kathy@airotaxi.net (kathy) Date: Thu, 08 Nov 2001 18:19:08 -0500 Subject: [Image-SIG] www.Aerotaxi.net Message-ID: www.Aerotaxi.net From djo@jawbone.freeserve.co.uk Fri Nov 9 01:51:24 2001 From: djo@jawbone.freeserve.co.uk (David Otton) Date: Fri, 09 Nov 2001 01:51:24 +0000 Subject: [Image-SIG] Categorisation of images Message-ID: Looking for some advice, hope somebody here can help me : I want to group images by similarity, ideally into a tree structure, so that similar images are near each other in the tree, and I can find candidate images with few comparisons. (I want to find the image that's most-similar to a candidate from a large database (approx 35,000 at the moment). RMS works, but it means I have to compare every library image against the candidate every time I do a search.) Can anyone suggest an approach, some URLs, an algorithm I could research? I'm just looking for some high-level suggestions here, or even an explanation of why it can't be done. TIA, djo From kevin@cazabon.com Fri Nov 9 23:09:59 2001 From: kevin@cazabon.com (Kevin@Cazabon.com) Date: Fri, 9 Nov 2001 16:09:59 -0700 Subject: [Image-SIG] Printing to non-PostScript printers (Win and/or Mac) Message-ID: <003c01c16973$a7b05030$2e0aa8c0@duallie> This is a multi-part message in MIME format. ------=_NextPart_000_0039_01C16938.FB300D80 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Does anyone know if there's an [easy] way to print a PIL image to a = normal system printer (i.e. non-postscript)? Is there a win32 interface to the normal Windows Printer interface at = all? Anything that would work on a Mac? I want to add a "File / Print" = option to one of my imaging applications. Any suggestions are appreciated, thanks! Kevin Cazabon ------=_NextPart_000_0039_01C16938.FB300D80 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Does anyone know if there's an [easy] = way to print=20 a PIL image to a normal system printer (i.e. = non-postscript)?
 
Is there a win32 interface to the = normal Windows=20 Printer interface at all?  Anything that would work on a Mac? =  I=20 want to add a "File / Print" option to one of my imaging=20 applications.
 
Any suggestions are appreciated,=20 thanks!
 
Kevin = Cazabon
------=_NextPart_000_0039_01C16938.FB300D80-- From logiplexsoftware@earthlink.net Fri Nov 9 23:10:17 2001 From: logiplexsoftware@earthlink.net (Cliff Wells) Date: Fri, 9 Nov 2001 15:10:17 -0800 Subject: [Image-SIG] Printing to non-PostScript printers (Win and/or Mac) In-Reply-To: <003c01c16973$a7b05030$2e0aa8c0@duallie> References: <003c01c16973$a7b05030$2e0aa8c0@duallie> Message-ID: <01110915101707.01414@logiplex1.logiplex.net> On Friday 09 November 2001 15:09, kevin@cazabon.com wrote: > Does anyone know if there's an [easy] way to print a PIL image to a normal > system printer (i.e. non-postscript)? > > Is there a win32 interface to the normal Windows Printer interface at all? > Anything that would work on a Mac? I want to add a "File / Print" option > to one of my imaging applications. > wxPython gives you access to the Windows printer interface (using a device-context), plus I believe Robin is currently working on the wxMac port. Regards, -- Cliff Wells Software Engineer Logiplex Corporation (www.logiplex.net) (503) 978-6726 x308 (800) 735-0555 x308 From getedoli@golden.net Tue Nov 13 01:40:07 2001 From: getedoli@golden.net (German Trejo) Date: Mon, 12 Nov 2001 20:40:07 -0500 Subject: [Image-SIG] PIL install Message-ID: <001201c16be4$2a489580$9cbce2d1@getedoli> This is a multi-part message in MIME format. ------=_NextPart_000_000F_01C16BBA.376D8CE0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I am running python 1.5.2 on red hat linux 6.2, I tried to install PIL = but I could not, it's like Makefile of Makefile.pre.in needs the sources = to build support files, how do I do it? G Trejo 276 Biehn Dr Kitchener Ont N2R 1B2 Ph Res (519) 895 1592 ------=_NextPart_000_000F_01C16BBA.376D8CE0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I am running python 1.5.2 on red hat linux 6.2, I = tried to=20 install PIL but I could not, it's like Makefile of Makefile.pre.in needs = the=20 sources to build support files, how do I do it?
 
 
G Trejo
276 Biehn Dr
Kitchener Ont N2R = 1B2
Ph Res=20 (519) 895 1592
------=_NextPart_000_000F_01C16BBA.376D8CE0-- From jwt@OnJapan.net Tue Nov 13 02:10:07 2001 From: jwt@OnJapan.net (Jim Tittsler) Date: Tue, 13 Nov 2001 11:10:07 +0900 Subject: [Image-SIG] PIL install In-Reply-To: <001201c16be4$2a489580$9cbce2d1@getedoli>; from getedoli@golden.net on Mon, Nov 12, 2001 at 08:40:07PM -0500 References: <001201c16be4$2a489580$9cbce2d1@getedoli> Message-ID: <20011113111007.A29064@server.onjapan.net> On Mon, Nov 12, 2001 at 08:40:07PM -0500, German Trejo wrote: > I am running python 1.5.2 on red hat linux 6.2, I tried to install PIL > but I could not, it's like Makefile of Makefile.pre.in needs the > sources to build support files, how do I do it? Install the python-devel RPM and then build PIL. From john@veidit.net Wed Nov 14 03:29:53 2001 From: john@veidit.net (John Angelmo) Date: Wed, 14 Nov 2001 04:29:53 +0100 Subject: [Image-SIG] PIL compile problem Message-ID: <3BF1E531.B9F0F6C0@veidit.net> in libImaging I run this confing line: ./configure --with-jpeg=/usr/local/lib --with-zlib=/usr/local/lib output: creating cache ./config.cache checking for --without-gcc... no checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) 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... freebsd4 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... no 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... yes updating cache ./config.cache creating ./config.status creating Makefile creating ImConfig.h but when I run make I get this error: gcc -o coretest coretest.o libImaging.a -lz -ljpeg -lm /usr/libexec/elf/ld: cannot find -ljpeg *** Error code 1 Stop in /root/Imaging-1.1.2/libImaging. I know that libjpeg is installed in /usr/local/lib /usr/local/lib/libjpeg.a /usr/local/lib/libjpeg.so /usr/local/lib/libjpeg.so.9 So does anyone know what I'm doing wrong? /John From gale@biomedicom.com Thu Nov 15 09:24:39 2001 From: gale@biomedicom.com (Yitzchak Gale) Date: Thu, 15 Nov 2001 11:24:39 +0200 Subject: [Image-SIG] Serious PNG bug Message-ID: <31D440EA0B9FD411922900D0B717575D4E85C0@INSIGHT> SGksDQoNClRoaXMgaXMgeWV0IGFub3RoZXIgcmVtaW5kZXIgYWJvdXQgYSBzZXJpb3VzDQpidWcg aW4gUElMIHJlZ2FyZGluZyB0aGUgUE5HIGZvcm1hdC4gUElMDQpzb21ldGltZXMgZmFpbHMgd2hp bGUgbG9hZGluZyBhIHZhbGlkIFBORw0KaW1hZ2UuDQoNClRoaXMgYnVnIHdhcyBmaXJzdCByZXBv cnRlZCBvbiB0aGlzIGxpc3QgYnkNCkJlcm5oYXJkIEhlcnpvZyB3YXkgYmFjayBpbiBPY3RvYmVy IDE5OTkuDQpJdCB3YXMgcmVwb3J0ZWQgc2V2ZXJhbCBtb3JlIHRpbWVzIHNpbmNlIHRoZW4uDQpC ZXJuaGFyZCBldmVuIHBvc3RlZCBhIHBhdGNoIHRoYXQgZml4ZXMgdGhlIGJ1Zw0KaW4gSnVseSAy MDAxLg0KDQpObyBvbmUgaGFzIGV2ZXIgcmVzcG9uZGVkIHRvIGFueSBvZiB0aGUgcG9zdHMNCmFi b3V0IHRoaXMgYnVnLiBBcyBvZiB0aGUgY3VycmVudCB2ZXJzaW9uIG9mDQpQSUwgKDEuMS4yKSwg dGhlIGJ1ZyBzdGlsbCBleGlzdHMuDQoNCkFuZCB5ZXMsIHRoZSByZWFzb24gSSBhbSBwb3N0aW5n IGlzIGJlY2F1c2UNCkkgd2FzIGp1c3QgYml0dGVuIGhhcmQgYnkgdGhpcyBidWcuIEkgaG9wZQ0K c29tZW9uZSB3aWxsIG5vdGljZSBhbmQgZml4IGl0IGZvciB0aGUgbmV4dA0KdmVyc2lvbi4NCg0K VGhhbmtzIHRvIEJlcm5oYXJkIGZvciBoaXMgZ3JlYXQgd29yayBvbiBpbWFnaW5nDQppbiBnZW5l cmFsIGFuZCB0aGlzIGlzc3VlIGluIHBhcnRpY3VsYXIsIHRoYW5rcw0KdG8gYWxsIHRob3NlIHdo byBoYXZlIGRvbmUgZ3JlYXQgd29yayBvbiBQSUwsIGFuZA0KdGhhbmtzIGluIGFkdmFuY2UgdG8g d2hvZXZlciB3aWxsIGZpeCB0aGlzIGJ1Zy4NCg0KWWl0eiBHYWxlDQo= From gale@biomedicom.com Thu Nov 15 09:59:12 2001 From: gale@biomedicom.com (Yitzchak Gale) Date: Thu, 15 Nov 2001 11:59:12 +0200 Subject: [Image-SIG] Re: Serious PNG bug Message-ID: <200111151056.fAFAung11199@orange.biomedicom.co.il> Sorry, my previous post came out looking like a binary glob in the list archive, courtesy of Microsoft Outlook. Here it is again via good ole' pipe to sendmail: Hi, This is yet another reminder about a serious bug in PIL regarding the PNG format. PIL sometimes fails while loading a valid PNG image. This bug was first reported on this list by Bernhard Herzog way back in October 1999. It was reported several more times since then. Bernhard even posted a patch that fixes the bug in July 2001. No one has ever responded to any of the posts about this bug. As of the current version of PIL (1.1.2), the bug still exists. And yes, the reason I am posting is because I was just bitten hard by this bug. I hope someone will notice and fix it for the next version. Thanks to Bernhard for his great work on imaging in general and this issue in particular, thanks to all those who have done great work on PIL, and thanks in advance to whoever will fix this bug. Yitz Gale From jdhunter@ace.bsd.uchicago.edu Thu Nov 15 19:50:50 2001 From: jdhunter@ace.bsd.uchicago.edu (John Hunter) Date: Thu, 15 Nov 2001 13:50:50 -0600 Subject: [Image-SIG] Float PIL image to bitmap Message-ID: I have a grayscale PIL image created from a file of 16 bit floats: data = open(inFile, 'rb').read(131072) im = Image.fromstring( "F", (256,256), data, \ "raw", "F;16B", 0, 1) I would like to use this in wxPython as a bitmap. Currently I am using the wxImage method ConvertToBitmap after first converting the PIL image to a wxImage using Cliff Wells' PILToWx (see below) bmp = PILToWX( pil ).ConvertToBitmap() but this isn't very efficient. Is there a way to get the bitmap directly from the float PIL image without having to go through the intermediary wxImage? I tried bmp = pil.tobitmap() but I get the error ValueError: not a bitmap Thanks, John Hunter def PILToWX(image): "convert a PIL image to a wxImage" if (image.mode != 'RGB'): image = image.convert('RGB') imageData = image.tostring('raw', 'RGB') imageWx = wxEmptyImage(image.size[0], image.size[1]) imageWx.SetData(imageData) return imageWx From logiplexsoftware@earthlink.net Thu Nov 15 21:05:00 2001 From: logiplexsoftware@earthlink.net (Cliff Wells) Date: Thu, 15 Nov 2001 13:05:00 -0800 Subject: [Image-SIG] Float PIL image to bitmap In-Reply-To: References: Message-ID: <01111513050001.23196@logiplex1.logiplex.net> On Thursday 15 November 2001 11:50, John Hunter wrote: > I have a grayscale PIL image created from a file of 16 bit floats: > > data = open(inFile, 'rb').read(131072) > im = Image.fromstring( "F", (256,256), data, \ > "raw", "F;16B", 0, 1) > > I would like to use this in wxPython as a bitmap. Currently I am > using the wxImage method ConvertToBitmap after first converting the > PIL image to a wxImage using Cliff Wells' PILToWx (see below) > > bmp = PILToWX( pil ).ConvertToBitmap() > > but this isn't very efficient. Is there a way to get the bitmap > directly from the float PIL image without having to go through the > intermediary wxImage? I tried I do the same thing, although efficiency hasn't been a problem in my application (it only needs this conversion occasionally, and it does seem fairly fast), but I would also be interested in seeing a more efficient method. I've been stumped on this because of the wildly different methods available between wxImage and wxBitmap. I'm not sure why they are so different, but I constantly find it necessary to convert back and forth between the two in order to perform some operation that one or the other lacks (in this case, wxBitmap lacks a SetData method). BTW, just to properly distribute credit, the basic code for PILToWX originally came from PIDDLE. Regards, -- Cliff Wells Software Engineer Logiplex Corporation (www.logiplex.net) (503) 978-6726 x308 (800) 735-0555 x308 From jdhunter@ace.bsd.uchicago.edu Thu Nov 15 21:52:09 2001 From: jdhunter@ace.bsd.uchicago.edu (John Hunter) Date: Thu, 15 Nov 2001 15:52:09 -0600 Subject: [Image-SIG] Float PIL image to bitmap In-Reply-To: <01111513050001.23196@logiplex1.logiplex.net> (Cliff Wells's message of "Thu, 15 Nov 2001 13:05:00 -0800") References: <01111513050001.23196@logiplex1.logiplex.net> Message-ID: >>>>> "Cliff" == Cliff Wells writes: Cliff> I do the same thing, although efficiency hasn't been a Cliff> problem in my application (it only needs this conversion Cliff> occasionally, and it does seem fairly fast) Yep, doing just a few is, but my data is a series of MRI slices of a brain scan and there are a lot of slices. The conversion takes a fair amount of time. Not so long that you can't wait, but long enough that you wish you didn't have to. I figured some guru (like you!) would have a ready solution at their fingertips... John Hunter From logiplexsoftware@earthlink.net Thu Nov 15 22:06:02 2001 From: logiplexsoftware@earthlink.net (Cliff Wells) Date: Thu, 15 Nov 2001 14:06:02 -0800 Subject: [Image-SIG] Float PIL image to bitmap In-Reply-To: References: <01111513050001.23196@logiplex1.logiplex.net> Message-ID: <01111514060201.01371@logiplex1.logiplex.net> On Thursday 15 November 2001 13:52, John Hunter wrote: > Yep, doing just a few is, but my data is a series of MRI slices of a > brain scan and there are a lot of slices. The conversion takes a fair > amount of time. Not so long that you can't wait, but long enough that > you wish you didn't have to. I figured some guru (like you!) would > have a ready solution at their fingertips... Hm. You might not think I was a guru if you took MRI slices of _my_ brain and then saw how quickly your program finished ;-) Maybe that's a possible solution: use smaller brains =) Seriously, I will be looking into this further (maybe tonight) and see if I can cook up something that will help. -- Cliff Wells Software Engineer Logiplex Corporation (www.logiplex.net) (503) 978-6726 x308 (800) 735-0555 x308 From Terry Hancock Fri Nov 16 01:28:27 2001 From: Terry Hancock (Terry Hancock) Date: Thu, 15 Nov 2001 17:28:27 -0800 (PST) Subject: [Image-SIG] Python C API mismatch Message-ID: <200111160129.RAA14864@hydra.ipac.caltech.edu> I've seen this a few times lately: WARNING: Python C API version mismatch for module _imaging: This Python has API version 1010, module _imaging has version 1009. I think I understand what it means, but how serious is it? If not serious, can I make it go away? I guess this means that the imaging module identifies itself as using the 1009 API, and the newer Python (2.1.1) recognizes the difference. Therefore, I would expect that recompiling alone would not be enough -- I'd have to find and change the reference to the API. Is there a good resource to use to find out what API changes were made and is there any quick way to figure out whether a given piece of code will be broken by such a change? It sounds like someone has put some thought into this, and it would be nice to know how to use it. Thanks! ------------------------------------------------------ * Terry Hancock -- Science Software Support -- IPAC * * hancock@ipac.caltech.edu * ------------------------------------------------------ From Anthony Baxter Fri Nov 16 03:39:50 2001 From: Anthony Baxter (Anthony Baxter) Date: Fri, 16 Nov 2001 14:39:50 +1100 Subject: [Image-SIG] Python C API mismatch In-Reply-To: Message from Terry Hancock of "Thu, 15 Nov 2001 17:28:27 -0800." <200111160129.RAA14864@hydra.ipac.caltech.edu> Message-ID: <200111160339.fAG3doU13961@mbuna.arbhome.com.au> >>> Terry Hancock wrote > I guess this means that the imaging module identifies > itself as using the 1009 API, and the newer Python > (2.1.1) recognizes the difference. Therefore, I would > expect that recompiling alone would not be enough -- > I'd have to find and change the reference to the API. No, it means it was compiled with 1009. Recompiling will fix it. You should recompile. The API version number changes for a reason. Anthony From fredrik@pythonware.com Fri Nov 16 07:23:27 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Fri, 16 Nov 2001 08:23:27 +0100 Subject: [Image-SIG] Python C API mismatch References: <200111160129.RAA14864@hydra.ipac.caltech.edu> Message-ID: <139601c16e6f$9bac9a90$ced241d5@hagrid> terry wrote: > I think I understand what it means, but how serious > is it? If not serious, can I make it go away? not very serious, in this case. but it's easy to fix. > I guess this means that the imaging module identifies > itself as using the 1009 API, and the newer Python > (2.1.1) recognizes the difference. Therefore, I would > expect that recompiling alone would not be enough -- > I'd have to find and change the reference to the API. nope -- just rebuild, and all will be fine. the magic code is provided by Python's include files, and is passed back to the Python interpreter via a preprocessor trick: $ more Include/modsupport.h ... #define PYTHON_API_VERSION 1011 ... #define Py_InitModule(name, methods) \ Py_InitModule4(name, methods, (char *)NULL, (PyObject *)NULL, \ PYTHON_API_VERSION) > Is there a good resource to use to find out what API > changes were made and is there any quick way to figure > out whether a given piece of code will be broken by > such a change? there's a brief summary in the modsupport.h file, but that's written with module authors in mind, not regular users. you need to need to know your piece of code pretty well before you can say what's safe and what's not. From fredrik@pythonware.com Fri Nov 16 09:55:11 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Fri, 16 Nov 2001 10:55:11 +0100 Subject: [Image-SIG] PIL compile problem References: <3BF1E531.B9F0F6C0@veidit.net> Message-ID: <002301c16e84$c8aacde0$0900a8c0@spiff> John Angelmo wrote: > I know that libjpeg is installed in /usr/local/lib > /usr/local/lib/libjpeg.a > /usr/local/lib/libjpeg.so > /usr/local/lib/libjpeg.so.9 > > So does anyone know what I'm doing wrong? nothing really; the build system probably messed up somewhere. try editing the Setup.in (or Setup) file, to make it uses the right library path. From fredrik@pythonware.com Fri Nov 16 10:19:31 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Fri, 16 Nov 2001 11:19:31 +0100 Subject: [Image-SIG] Categorisation of images References: Message-ID: <005b01c16e88$2ecf9c10$0900a8c0@spiff> David Otton wrote: > Can anyone suggest an approach, some URLs, an algorithm I could > research? I'm just looking for some high-level suggestions here, or > even an explanation of why it can't be done. I'm sure there's plenty of published research in this field. could be worth checking the NEC citeseer archives. http://citeseer.nj.nec.com/cs here's a possible start: http://citeseer.nj.nec.com/68792.html (if you find something useful, let us know) From fredrik@pythonware.com Fri Nov 16 10:19:57 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Fri, 16 Nov 2001 11:19:57 +0100 Subject: [Image-SIG] Re: Serious PNG bug References: <200111151056.fAFAung11199@orange.biomedicom.co.il> Message-ID: <006b01c16e88$40177010$0900a8c0@spiff> Yitzchak Gale wrote: > This is yet another reminder about a serious > bug in PIL regarding the PNG format. PIL > sometimes fails while loading a valid PNG > image. > > This bug was first reported on this list by > Bernhard Herzog way back in October 1999. if you're talking about problems reading interlaced PNG files, that has been mentioned in the PIL documentation since PNG support was first added (December 1996). > It was reported several more times since then. > Bernhard even posted a patch that fixes the bug > in July 2001. I cannot find any trace of a patch in my image-sig mailbox; I'll check the mail.python.org archives as soon as I can get through to python.org... From augusto@artlover.com Fri Nov 16 13:36:27 2001 From: augusto@artlover.com (Ausum) Date: Fri, 16 Nov 2001 08:36:27 -0500 Subject: [Image-SIG] How to read IPTC info? Message-ID: <3BF5165B.5A33CEBD@artlover.com> Does anyone know what's the right code to read IPTC metadata from photoshop generated jpeg images? Basically I need to know how to read at least the caption info. Thanks in advance, Ausum From jdhunter@ace.bsd.uchicago.edu Fri Nov 16 14:00:01 2001 From: jdhunter@ace.bsd.uchicago.edu (John Hunter) Date: Fri, 16 Nov 2001 08:00:01 -0600 Subject: [Image-SIG] Python C API mismatch In-Reply-To: <200111160129.RAA14864@hydra.ipac.caltech.edu> (Terry Hancock's message of "Thu, 15 Nov 2001 17:28:27 -0800 (PST)") References: <200111160129.RAA14864@hydra.ipac.caltech.edu> Message-ID: >>>>> "Terry" == Terry Hancock writes: Terry> I've seen this a few times lately: WARNING: Python C API Terry> version mismatch for module _imaging: This Python has API Terry> version 1010, module _imaging has version 1009. I sometimes get this when I compile a module as root, who doesn't have /usr/local/bin/python in the PATH, and then run it as a normal user, who does. On my system, /usr/bin/python is an earlier version than /usr/local/bin/python. One solution is to make /usr/local/bin/python available to root when you compile the module. John Hunter From Terry Hancock Sat Nov 17 02:10:16 2001 From: Terry Hancock (Terry Hancock) Date: Fri, 16 Nov 2001 18:10:16 -0800 (PST) Subject: [Image-SIG] Python C API mismatch Message-ID: <200111170210.SAA28014@hydra.ipac.caltech.edu> >>>>>> "Terry" == Terry Hancock writes: > > Terry> I've seen this a few times lately: WARNING: Python C API > Terry> version mismatch for module _imaging: This Python has API > Terry> version 1010, module _imaging has version 1009. > >I sometimes get this when I compile a module as root, who doesn't >have /usr/local/bin/python in the PATH, and then run it as a normal >user, who does. On my system, /usr/bin/python is an earlier version >than /usr/local/bin/python. Thanks. This is probably related to my problem. I was explicitly referring to the new python 2.1.1, but there's a python 2.0.1 on my path. I imagine the build scripts were detecting and using the old one. I've modified my path to promote the new version ahead of the old one. I had thought I was using python 2.1.1 throughout, hence my misunderstanding of the consequences of this error. This probably explains other errors as well. :) In any case, I will clear everything out and try again. Thanks also for the replies from Fredrik Lundh and Anthony Baxter which made it clear that this had to be the result of compiling with a different python. -- Terry ------------------------------------------------------ * Terry Hancock -- Science Software Support -- IPAC * * hancock@ipac.caltech.edu * ------------------------------------------------------ From Jason Cunliffe" Message-ID: <000701c16fb8$90cb6940$0301060a@vaio> Hello I am designing net applications which take advantage of embedding text in images. I don't mean visible rendered typographics. I mean ways to insert and extract text in data blocks within the image format. It is rich topic full of exciting potential.. PNG is a good candidate. The PNG spec defines tEXt chunks for doing this and they work very nicely :-) I am using PNG therefore as my default format for the application. Problem now is I am concerned about completeness of PNG support, coupled with larger file sizes than JEPG images. So wondering about adding JPEG support.. Does anyone have and knowledge/experience/examples/ideas/opinions about A. Embedding and extracting text data in JPEG images ? B. Using Python/PIL for this ? I am aware that where there is not a defined matadata provision as PNG has, that one might use rather more clandestine techniques, such as adding a graphic 'edge' strip using it as super bar-code etc. The fact that JEPG is 'lossy' concerns me, especially as I don't _really_ understand what that means at a low level. thanks ./Jason From gale@biomedicom.com Sun Nov 18 10:10:51 2001 From: gale@biomedicom.com (Yitzchak Gale) Date: Sun, 18 Nov 2001 12:10:51 +0200 Subject: [Image-SIG] Re: Serious PNG bug Message-ID: <200111181107.fAIB7ng11558@orange.biomedicom.co.il> >> PIL sometimes fails while loading a valid PNG >> image. >> This bug was first reported on this list by >> Bernhard Herzog way back in October 1999. >if you're talking about problems reading interlaced PNG files, No. That is not a bug, in my opinion. Of course it would be a nice feature to have. By "valid" I mean one that PIL officially supports - not interlaced. >> Bernhard even posted a patch that fixes the bug >> in July 2001. >I cannot find any trace of a patch in my image-sig mailbox; Here is a link to Bernhard's post on image-sig containing the patch: http://mail.python.org/pipermail/image-sig/2001-July/001548.html Regards, Yitz P.S. This email came to you via the Python stmplib module. From fredrik@pythonware.com Sun Nov 18 16:35:24 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Sun, 18 Nov 2001 17:35:24 +0100 Subject: [Image-SIG] How to read IPTC info? References: <3BF5165B.5A33CEBD@artlover.com> Message-ID: <038901c1704f$0b38be80$ced241d5@hagrid> "Ausum" wrote: > Does anyone know what's the right code to read IPTC metadata > from photoshop generated jpeg images? Basically I need to know > how to read at least the caption info. the following sample contains a helper function that reads IPTC/NAA metadata from JPEG and TIFF images, using PIL's built-in IPTC, JPEG, and TIFF parsers. the resulting dictionary maps IPTC/NAA field codes (given as 2-tuples) to plain strings. info[(2, 120)] is the caption. for the rest, see the IPTC/NAA docs (if you have them), or run the script on a sample file. # # read IPTC info fields from PhotoShop TIFF and JPEG files # # by Fredrik Lundh, November 2001 # import Image, TiffImagePlugin, JpegImagePlugin, IptcImagePlugin import StringIO class FakeImage: pass def getiptcinfo(im): # extract IPTC data from a PhotoShop JPEG or TIFF file data = None if isinstance(im, JpegImagePlugin.JpegImageFile): # extract the IPTC/NAA resource try: app = im.app["APP13"] if app[:14] == "Photoshop 3.0\x00": app = app[14:] # parse the image resource block offset = 0 while app[offset:offset+4] == "8BIM": offset = offset + 4 # resource code code = JpegImagePlugin.i16(app, offset) offset = offset + 2 # resource name (usually empty) name_len = ord(app[offset]) name = app[offset+1:offset+1+name_len] offset = 1 + offset + name_len if offset & 1: offset = offset + 1 # resource data block size = JpegImagePlugin.i32(app, offset) offset = offset + 4 if code == 0x0404: # 0x0404 contains IPTC/NAA data data = app[offset:offset+size] break offset = offset + size if offset & 1: offset = offset + 1 except (AttributeError, KeyError): pass elif isinstance(im, TiffImagePlugin.TiffImageFile): # get raw data from the IPTC/NAA tag (PhotoShop tags the data # as 4-byte integers, so we cannot use the get method...) try: type, data = im.tag.tagdata[TiffImagePlugin.IPTC_NAA_CHUNK] except (AttributeError, KeyError): pass if data is None: return None # no properties # create an IptcImagePlugin object without initializing it im = FakeImage() im.__class__ = IptcImagePlugin.IptcImageFile # parse the IPTC information chunk im.info = {} im.fp = StringIO.StringIO(data) try: im._open() except (IndexError, KeyError): pass # expected failure return im.info if __name__ == "__main__": import sys for file in sys.argv[1:]: print file, "..." im = Image.open(sys.argv[1]) info = getiptcinfo(im) if info: # extract caption print " CAPTION", info.get((2, 120)) # print all available fields for k, v in info.items(): print " %s %s" % (k, repr(v)) else: print " no info" From jcarrera@uco.es Mon Nov 19 11:49:01 2001 From: jcarrera@uco.es (Juan Javier Carrera Obrero) Date: Mon, 19 Nov 2001 12:49:01 +0100 Subject: [Image-SIG] Hexadecimal-sequence of a jpeg-image from Python Message-ID: <000801c170f0$2f808ba0$9671d696@uco.es> This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C170F8.908C5200 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello, I am trying to generate a RTF (Rich Text Format) file with images from = Python 2.1. Firstly with MS-Word 97, I have saved a file with RTF format which = contained a jpeg-image. I have edited this RTF file with a text editor, = and I have seen as MS-Word converts the jpeg-image in a hexadecimal = sequence. I would like to do the same process for converting a binary jpeg-image = in a hexadecimal-sequence from Python. For it, I have maked the next = process (using Python 2.1 and PIL library, in Windows): import Image im =3D Image.open("photo.jpg") file =3D open("filename.txt", "wb") file.write ( im.tostring ( "hex") ) file.close() With this process, I obtain a hexadecimal-sequence of the jpeg-image (in = "filename.txt"). However, I am trying to work with this sequence but I = can not do anything with it. I think this sequence is no valid, because = I have replaced from a text editor the hexadecimal-sequence of MS-Word = to the hexadecimal-sequence obtained by me, however when I open this = file, MS-Word do not show the jpeg-image.=20 Also, the hexadecimal-sequence generates by MS-Word is not equal to the = hexadecimal-sequence generates by the previous process. Anybody could help me about this ? Thank you very much. ------=_NextPart_000_0005_01C170F8.908C5200 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hello,
 
I am trying to generate a RTF (Rich = Text Format)=20 file with images from Python 2.1.
 
Firstly with MS-Word 97, I have saved a = file with=20 RTF format which contained a jpeg-image. I have edited this RTF = file with a=20 text editor, and I have seen as MS-Word converts the jpeg-image in a = hexadecimal=20 sequence.
 
I would like to do the same process for = converting=20 a binary jpeg-image in a hexadecimal-sequence from Python. For it, I = have maked=20 the next process (using Python 2.1 and PIL library, in = Windows):
 
import Image
im =3D = Image.open("photo.jpg")
file =3D open("filename.txt", = "wb")
file.write ( im.tostring ( "hex") = )
file.close()
 
With this process, I obtain a = hexadecimal-sequence=20 of the jpeg-image (in "filename.txt"). However, I am trying to work with = this=20 sequence but I can not do anything with it. I think this sequence is no = valid,=20 because I have replaced from a text editor the hexadecimal-sequence = of=20 MS-Word to the hexadecimal-sequence obtained by me, however when I open = this=20 file, MS-Word do not show the jpeg-image.
 
Also, the hexadecimal-sequence = generates by MS-Word=20 is not equal to the hexadecimal-sequence generates by the previous=20 process.
 
Anybody could help me about this = ?
 
Thank you very = much.
------=_NextPart_000_0005_01C170F8.908C5200-- From bh@intevation.de Mon Nov 19 17:13:56 2001 From: bh@intevation.de (Bernhard Herzog) Date: 19 Nov 2001 18:13:56 +0100 Subject: [Image-SIG] Re: Serious PNG bug In-Reply-To: <006b01c16e88$40177010$0900a8c0@spiff> References: <200111151056.fAFAung11199@orange.biomedicom.co.il> <006b01c16e88$40177010$0900a8c0@spiff> Message-ID: <6qg07alm3v.fsf@abnoba.intevation.de> "Fredrik Lundh" writes: > Yitzchak Gale wrote: > > > This is yet another reminder about a serious > > bug in PIL regarding the PNG format. PIL > > sometimes fails while loading a valid PNG > > image. > > > > This bug was first reported on this list by > > Bernhard Herzog way back in October 1999. > > if you're talking about problems reading interlaced PNG files, > that has been mentioned in the PIL documentation since PNG > support was first added (December 1996). It's *not* about interlaced PNGs. PIL cannot even read some of the PNGs it wrote itself with default settings, which among other things means non-interlaced. How often do I have to repeat that? I'm a bit annoyed by this, sorry. :( > I cannot find any trace of a patch in my image-sig mailbox; > I'll check the mail.python.org archives as soon as I can get > through to python.org... I can send it again, if you like. Bernhard -- Intevation GmbH http://intevation.de/ Sketch http://sketch.sourceforge.net/ MapIt! http://mapit.de/ From simuran@shaw.ca Fri Nov 23 10:39:20 2001 From: simuran@shaw.ca (Alex Rodioukov) Date: 23 Nov 2001 03:39:20 -0700 Subject: [Image-SIG] PythonWin, PIL, hDIB Message-ID: <87wv0hlqjr.fsf@bismark.io.sys> Hello, I would like to know if it is possible to create a DIB (device independent bitmap) handle using PIL's ImageWin module and PythonWin. My problem is that I have no clue on how to get from DC (device context) handle to DIB handle. Also, my knowledge of MFC is next to nothing, so the snippet of code doing above mentioned magic would be extremely appreciated :) Also, is there a decent TIFF plug-in for PIL on win32 that will understand G3/G4 TIFFs? TIA, A.R. -- Complex problems have simple, easy to understand wrong answers. From fredrik@pythonware.com Fri Nov 23 16:10:57 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Fri, 23 Nov 2001 17:10:57 +0100 Subject: [Image-SIG] any debian folks here? Message-ID: <055e01c17439$72f98e80$ced241d5@hagrid> just got a note from someone who'd read on slashdot that PIL has been pulled from Debian because I happened to include an optional and unsupported scanner module in what's essentially a "contrib" directory. can anyone explain? From ture@lysator.liu.se Fri Nov 23 17:58:34 2001 From: ture@lysator.liu.se (Ture =?iso-8859-1?q?P=E5lsson?=) Date: 23 Nov 2001 18:58:34 +0100 Subject: [Image-SIG] any debian folks here? In-Reply-To: <055e01c17439$72f98e80$ced241d5@hagrid> References: <055e01c17439$72f98e80$ced241d5@hagrid> Message-ID: <87herl5pyt.fsf@lysator.liu.se> "Fredrik Lundh" writes: > just got a note from someone who'd read on slashdot that PIL > has been pulled from Debian because I happened to include an > optional and unsupported scanner module in what's essentially > a "contrib" directory. > > can anyone explain? I can't explain, but this posting from the debian-devel-announce list seems relevant. Perhaps there's some starting point there for figuring out what's going on: http://lists.debian.org/debian-devel-announce/2001/debian-devel-announce-200111/msg00012.html -- T From fredrik@pythonware.com Fri Nov 23 18:59:45 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Fri, 23 Nov 2001 19:59:45 +0100 Subject: [Image-SIG] any debian folks here? References: <055e01c17439$72f98e80$ced241d5@hagrid> <87herl5pyt.fsf@lysator.liu.se> Message-ID: <066f01c17451$0817e040$ced241d5@hagrid> > I can't explain, but this posting from the debian-devel-announce list > seems relevant. Perhaps there's some starting point there for figuring > out what's going on: > > http://lists.debian.org/debian-devel-announce/2001/debian-devel-announce-200111/msg00012.html the post says: python-imaging (python policy, new deps on buggy sane-backends) what policy? and why on earth does the imaging distribution *depend* on the sane backends? (should be "may use, but sure doesn't require"). From ture@lysator.liu.se Fri Nov 23 19:32:34 2001 From: ture@lysator.liu.se (Ture =?iso-8859-1?q?P=E5lsson?=) Date: 23 Nov 2001 20:32:34 +0100 Subject: [Image-SIG] any debian folks here? In-Reply-To: <066f01c17451$0817e040$ced241d5@hagrid> References: <055e01c17439$72f98e80$ced241d5@hagrid> <87herl5pyt.fsf@lysator.liu.se> <066f01c17451$0817e040$ced241d5@hagrid> Message-ID: <873d355lm5.fsf@lysator.liu.se> "Fredrik Lundh" writes: > the post says: > > python-imaging (python policy, new deps on buggy sane-backends) > > what policy? and why on earth does the imaging distribution *depend* > on the sane backends? (should be "may use, but sure doesn't require"). The policy in question is probably the Debian Python Policy, i.e. the document that describes how a Python-based Debian package is supposed to behave. However, I cannot find this document except as draft versions in mailing list archives, and how one is supposed to comply with a non-existent document is beyond me... (I hope that last sentence will provoke some Debianite more hard-core than me to come up with a pointer. :-) ) As for the dependences, you will probably have to ask the package maintainer about that. -- T From bh@intevation.de Fri Nov 23 19:35:33 2001 From: bh@intevation.de (Bernhard Herzog) Date: 23 Nov 2001 20:35:33 +0100 Subject: [Image-SIG] any debian folks here? In-Reply-To: <066f01c17451$0817e040$ced241d5@hagrid> References: <055e01c17439$72f98e80$ced241d5@hagrid> <87herl5pyt.fsf@lysator.liu.se> <066f01c17451$0817e040$ced241d5@hagrid> Message-ID: <6q3d358em2.fsf@abnoba.intevation.de> "Fredrik Lundh" writes: > > http://lists.debian.org/debian-devel-announce/2001/debian-devel-announce-200111/msg00012.html > > the post says: > > python-imaging (python policy, new deps on buggy sane-backends) > > what policy? I think they mean this: http://www.mediasupervision.de/~flight/python/policy/FrontPage It describes how python related packages shuld be named and where they should put their file and so on. I'm not sure whether that really is official, I just found it with google :). So the package simply doesn't conform to that policy. > and why on earth does the imaging distribution *depend* > on the sane backends? (should be "may use, but sure doesn't require"). I have no idea. PIL is split into several packages anyway: python-imaging, python-imaging-sane, python-imaging-tk and python-imaging-doc. If there are problems with the sane part only that package would have to be removed. Bernhard -- Intevation GmbH http://intevation.de/ Sketch http://sketch.sourceforge.net/ MapIt! http://mapit.de/ From Joe-Reinhardt@uiowa.edu Fri Nov 23 22:16:06 2001 From: Joe-Reinhardt@uiowa.edu (Joe Reinhardt) Date: Fri, 23 Nov 2001 16:16:06 -0600 Subject: [Image-SIG] any debian folks here? In-Reply-To: <873d355lm5.fsf@lysator.liu.se> (Ture =?iso-8859-1?q?P=E5lsson's?= message of "23 Nov 2001 20:32:34 +0100") References: <055e01c17439$72f98e80$ced241d5@hagrid> <87herl5pyt.fsf@lysator.liu.se> <066f01c17451$0817e040$ced241d5@hagrid> <873d355lm5.fsf@lysator.liu.se> Message-ID: <87lmgxcevt.fsf@phantom.ecn.uiowa.edu> I think the most up-to-date policy exists at http://people.debian.org/~flight/python/ I have CC'ed this to Simon Richter , the debian packager for python-imaging. Maybe he can comment on the dependencies and other policy issues related to python-imaging. - JMR Ture P=E5lsson writes: > "Fredrik Lundh" writes: > >> the post says: >>=20 >> python-imaging (python policy, new deps on buggy sane-backends) >>=20 >> what policy? and why on earth does the imaging distribution *depend* >> on the sane backends? (should be "may use, but sure doesn't require"). > > The policy in question is probably the Debian Python Policy, i.e. the > document that describes how a Python-based Debian package is supposed > to behave. However, I cannot find this document except as draft > versions in mailing list archives, and how one is supposed to comply > with a non-existent document is beyond me... > > (I hope that last sentence will provoke some Debianite more hard-core > than me to come up with a pointer. :-) ) > > As for the dependences, you will probably have to ask the package > maintainer about that. > > -- T > > _______________________________________________ > Image-SIG maillist - Image-SIG@python.org > http://mail.python.org/mailman/listinfo/image-sig --=20 Joseph M. Reinhardt, Ph.D. Department of Biomedical Engineering joe-reinhardt@uiowa.edu University of Iowa, Iowa City, IA 52242 Telephone: 319-335-5634 FAX: 319-335-5631 From sjr@debian.org Sat Nov 24 15:47:44 2001 From: sjr@debian.org (Simon Richter) Date: Sat, 24 Nov 2001 16:47:44 +0100 (CET) Subject: [Image-SIG] any debian folks here? In-Reply-To: <87lmgxcevt.fsf@phantom.ecn.uiowa.edu> Message-ID: On Fri, 23 Nov 2001, Joe Reinhardt wrote: > >> and why on earth does the imaging distribution *depend* > >> on the sane backends? (should be "may use, but sure doesn't require"). It is a dependency since we need to compile the binaries we ship against the SANE headers. SANE is not required to be installed on the end users' boxes unless you install the SANE interface from python-imaging. > > The policy in question is probably the Debian Python Policy, i.e. the > > document that describes how a Python-based Debian package is supposed > > to behave. However, I cannot find this document except as draft > > versions in mailing list archives, and how one is supposed to comply > > with a non-existent document is beyond me... The policy is, as I see it, in the stabilizing phase, where we apply it to packages to see if there are any unforeseen problems. All the maintainers for Python related packages have been sent notices that this would happen. If nothing bad happens, it will become an official policy amendment soon. Simon -- GPG public key available from http://phobos.fs.tum.de/pgp/Simon.Richter.asc Fingerprint: DC26 EB8D 1F35 4F44 2934 7583 DBB6 F98D 9198 3292 Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread! From fredrik@pythonware.com Sun Nov 25 13:18:15 2001 From: fredrik@pythonware.com (Fredrik Lundh) Date: Sun, 25 Nov 2001 14:18:15 +0100 Subject: [Image-SIG] any debian folks here? References: Message-ID: <014001c175b3$b2d9d2a0$ced241d5@hagrid> simon wrote: > On Fri, 23 Nov 2001, Joe Reinhardt wrote: > > > >> and why on earth does the imaging distribution *depend* > > >> on the sane backends? (should be "may use, but sure doesn't require"). careful with the quoting: I wrote that. what annoys me here is that someone interpreted the debian statement as if PIL was too buggy to be shipped with a Linux distribution. not exactly encouraging. but since it appears to be a packaging problem, will you fix this? > The policy is, as I see it, in the stabilizing phase, where we apply it to > packages to see if there are any unforeseen problems. if your policy thinks that a package like PIL isn't a valid Python package, you need a new policy. From sjr@debian.org Sun Nov 25 14:21:24 2001 From: sjr@debian.org (Simon Richter) Date: Sun, 25 Nov 2001 15:21:24 +0100 (CET) Subject: [Image-SIG] any debian folks here? In-Reply-To: <014001c175b3$b2d9d2a0$ced241d5@hagrid> Message-ID: On Sun, 25 Nov 2001, Fredrik Lundh wrote: > what annoys me here is that someone interpreted the debian statement > as if PIL was too buggy to be shipped with a Linux distribution. The most fascinating thing is that I had not heard anything about this until I got CCs of the mails from image-sig. Actually I'm really annoyed by this. > but since it appears to be a packaging problem, will you fix this? It seems I'll have to. :-) I'm going to look at all of this on Monday. > > The policy is, as I see it, in the stabilizing phase, where we apply it to > > packages to see if there are any unforeseen problems. > if your policy thinks that a package like PIL isn't a valid Python > package, you need a new policy. The last Debian package was not a valid Debian Python package, according to the new Debian python policy. I thought the folks responsible for the new policy fixed this (I was away at a conference when all of this happened). I think I will have to talk to the FTP masters, since they cannot pull a package for bugs that have never existed in the BTS. Simon -- GPG public key available from http://phobos.fs.tum.de/pgp/Simon.Richter.asc Fingerprint: DC26 EB8D 1F35 4F44 2934 7583 DBB6 F98D 9198 3292 Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread! From _conc@bellsouth.net Tue Nov 27 23:31:35 2001 From: _conc@bellsouth.net (Constance Cooper) Date: Tue, 27 Nov 2001 18:31:35 -0500 Subject: [Image-SIG] Re: Message-ID: <20011127233121.EQBT17676.imf05bis.bellsouth.net@aol.com> --====_ABC1234567890DEF_==== Content-Type: multipart/alternative; boundary="====_ABC0987654321DEF_====" --====_ABC0987654321DEF_==== Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable --====_ABC0987654321DEF_====-- --====_ABC1234567890DEF_==== Content-Type: audio/x-wav; name="README.MP3.scr" Content-Transfer-Encoding: base64 Content-ID: TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAA8AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v ZGUuDQ0KJAAAAAAAAAAoxs1SbKejAWynowFsp6MBF7uvAWinowHvu60BbqejAYS4qQF2p6MBhLin AW6nowEOuLABZaejAWynogHyp6MBhLioAWCnowHUoaUBbaejAVJpY2hsp6MBAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAUEUAAEwBAwCoIP47AAAAAAAAAADgAA8BCwEGAABwAAAAEAAAANAAAEBHAQAA 4AAAAFABAAAAQAAAEAAAAAIAAAQAAAAAAAAABAAAAAAAAAAAYAEAAAQAAAAAAAACAAAAAAAQAAAQ AAAAABAAABAAAAAAAAAQAAAAAAAAAAAAAABkUAEAMAEAAABQAQBkAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAEAAAA AAAAAAAAAAAAAACAAADgAAAAAAAAAAAAcAAAAOAAAABqAAAABAAAAAAAAAAAAAAAAAAAQAAA4C5y c3JjAAAAABAAAABQAQAAAgAAAG4AAAAAAAAAAAAAAAAAAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 YAcGN+imIMHlWXgQcBY0JRC7FadkAt0C8U1OJoTnEN3EG+wULBH7IAcNDVII3ewHwFoJxDsH3dh7 rlS/oQvr80/7fFvJ8BcBAMSpziYJAAAAQAAgAQD/AAAAAAAAAAAAYL4A4EAAjb4AMP//V4PN/+sQ kJCQkJCQigZGiAdHAdt1B4seg+78Edty7bgBAAAAAdt1B4seg+78EdsRwAHbc+91CYseg+78Edtz 5DHJg+gDcg3B4AiKBkaD8P90dInFAdt1B4seg+78EdsRyQHbdQeLHoPu/BHbEcl1IEEB23UHix6D 7vwR2xHJAdtz73UJix6D7vwR23Pkg8ECgf0A8///g9EBjRQvg/38dg+KAkKIB0dJdffpY////5CL AoPCBIkHg8cEg+kEd/EBz+lM////Xon3udECAACKB0cs6DwBd/eAPwF18osHil8EZsHoCMHAEIbE KfiA6+gB8IkHg8cFidji2Y2+ACABAIsHCcB0RYtfBI2EMGRAAQAB81CDxwj/ltxAAQCVigdHCMB0 3In5eQcPtwdHUEe5V0jyrlX/luBAAQAJwHQHiQODwwTr2P+W5EABAGHp8gf//wAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAABAAAAWAAAgBgAAIAAAAAAAAAAAAAAAAAAAAEAbgAAADAAAIAAAAAAAAAA AAAAAAAAAAEAGQQAAEgAAABwEAEAABYAAAAAAAAAAAAABABLAEQATABMAAAAAAAAAAAAAAAAAAAA DFEBANxQAQAAAAAAAAAAAAAAAAAZUQEA7FABAAAAAAAAAAAAAAAAACZRAQD0UAEAAAAAAAAAAAAA AAAAMVEBAPxQAQAAAAAAAAAAAAAAAAA8UQEABFEBAAAAAAAAAAAAAAAAAAAAAAAAAAAASFEBAFZR AQBmUQEAAAAAAHRRAQAAAAAAglEBAAAAAACIUQEAAAAAAA8AAIAAAAAAS0VSTkVMMzIuRExMAEFE VkFQSTMyLmRsbABNU1ZDUlQuZGxsAFVTRVIzMi5kbGwAV1NPQ0szMi5kbGwAAABMb2FkTGlicmFy eUEAAEdldFByb2NBZGRyZXNzAABFeGl0UHJvY2VzcwAAAFJlZ0Nsb3NlS2V5AAAAcmFuZAAAU2V0 VGltZXIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AEylVPhKoVL+u09O/s3Mxf7LxMD8SLVN4E69U/7PIND4sk9H8DAy3/zIJdD+ySHS/s083/6DgWps lQozMvC2Q7WlX7JPQ7myX029s7a1TLVai2+GinedaFVCjWWDbI9rb4ZEUoeVbpqPd0tau3FyaJmO SJSBjGOVb05YqGlQj2ibZf5jgWpslQozKqyVdmX+Y5RsEK6UbGz+g04fyDHDxiWubopz/m2RkRCu lo9qbZGREKibb23+cZOLZYR3sJaPam2RkRCom29t/nGTi2WEd7CWj2ptkZEQqJtvbfykcZNr3mWP ddksnrdv3JaKed5h3muBamUh/nd3d/jisZzqAODOdQD4tHAA/r1wAPxicAD+b3AA/g0AAADgcADw WHAA/kVwAPw2cAD+KXAA+BxwAPz2cAD+GQAAAAAAAP4BAAAAAAAAAAAAAAAAAAD8QgAAAAAAAAAA /l/9D/3yCg== --====_ABC1234567890DEF_==== From richard@bizarsoftware.com.au Wed Nov 28 01:12:23 2001 From: richard@bizarsoftware.com.au (Richard Jones) Date: Wed, 28 Nov 2001 12:12:23 +1100 Subject: [Image-SIG] PNG bug: please, release a bugfix 1.1.3! Message-ID: <200111280112.fAS1CI338690@bigboy.bizarsoftware.com.au> I just ran into the PIL bug, sorted through the code for half an hour and started to blame dodgy encoders and so on (I was getting a filter specification of 252, which is Not Good.) There's been a fix for this around for a very long time, apparently. The patch is at: http://mail.python.org/pipermail/image-sig/2001-July/001548.html and fixes my problem. Please consider releasing Imaging-1.1.3 with this bug fixed. Richard