9 ms·
How to use the Python Imaging Library
- thatthatis 13y agoThis is missing step one: use Pillow instead of PIL
- AbsoluteDestiny 13y agoAn article posted 7th Nov 2013 should not be recommending use of PIL (a dead project) over Pillow, imo. The only reference to Pillow in the article is a link at the bottom to the Pillow tutorial.
- temuze 13y agoUpvote for Pillow. For those of you who don't know, Pillow is a fork of PIL that is: - Pip/setuptools compatible - Python 3 compatible - Has more regular releases. This is a great example of what to do when an open source project is getting behind on the times. PIL was having bi-year releases and installation was a headache, so someone forked it and made it better.
- wiredfool 13y agoI'm a maintainer for pillow. Feel free to ask any questions. (I'm not sure PIL is a dead project. It's just resting. Beautiful plumage through)
- chrismmccomas 13y agoI know Django isn't end all, be all, but with them moving forward towards 1.8 where PIL will be completely depreciated, that's really the first nail in the coffin for PIL.
- wiredfool 13y agoIt's also filtering into the distro packaging -- I think it's in debian unstable, ubuntu as of raring, and fedora ~19.
- frewsxcv 13y agoIs it planned for Pillow to support RAW formats?
- wiredfool 13y agoNo one's asked for it that I've heard, so it's not in the plans. I'd consider adding DNG if there's a good external library. The individual camera raws, that's more of a thankless task with how fast they change/multiply.
- fsckin 13y agoNot directed at you, but why do camera makers continue to reinvent RAW formats for new models? Isn't this a 'solved' problem with Adobe's DNG being royalty free and all? When I got a D800 around launch time, even Lightroom didn't have the capability to import them directly at launch and I had to convert them to DNGs first. What a bloddy mess.
- wiredfool 13y agoThere are many rants about that. It's not so much that the formats change, it's that they keep adding tags that mean something within the formats. Oddly enough, of the ones that I've looked at, they can (generally) be interpreted as a tiff file if you squint at them correctly. (not that a tiff file is any better. It's not called Thousands of Incompatible File Formats for nothing). But once you have that file format, camera manufacturers tend to embed hunks of data in the raw file about settings and other things that the camera knows about the image, like the focus points, white balance, camera calibration, image compression, dot layout and all that. I'd like to leave that as Someone Else's Problem. (unless there's a lot of money and shiny cameras in it for me)
- e12e 13y agoWouldn't libraw and/or freeimage be a good fit (both for raw and dng)? http://www.libraw.org/ http://www.libraw.org/ http://freeimage.sourceforge.net/ http://freeimage.sourceforge.net/
- holyjaw 13y agoI tried to install PIL the other day via `pip` I believe, and a warning appeared basically saying PIL is not being maintained (is dead), use an alternative.
- stevejohnson 13y agoPIL has never worked with pip, but you can still install it using the instructions on their web site. pillow works fine with pip.
- truncate 13y agoI'm curious what problems you faced with PIL on Pip. I never tried installing it before today at work on Travis using Pip. Despite of all system libraries (jpeg-dev, zlib-dev) installed it would complain about libraries not being present and compiled without png/jpeg... support.
- uolot 13y agoIf you're on Ubuntu, running "apt-get build-dep python-imaging" should fix those problems (or it did for me in the past).
- agumonkey 13y agourl : https://pypi.python.org/pypi/Pillow/1.7.8 https://pypi.python.org/pypi/Pillow/1.7.8
- wiredfool 13y agoEven better: https://pypi.python.org/pypi/Pillow/2.2.1 https://pypi.python.org/pypi/Pillow/2.2.1 (though, it doesn't support py<=2.5)
- aelaguiz 13y agoThanks for this. I've been using PIL forever, didn't know there was a live fork.
- stevejohnson 13y agoHere's the documentation for pillow. There are quite a few new features and supported formats. http://pillow.readthedocs.org/en/latest/ http://pillow.readthedocs.org/en/latest/ It's amusing to me that he ignores pillow for the whole piece and then links to the tutorial I ported to the pillow docs from the PIL handbook just a few weeks ago.
- trurl42 13y agoWhen drawing something from scratch, I found Pycairo to be much more useful. http://cairographics.org/pycairo/ http://cairographics.org/pycairo/
- infocollector 13y agoPIL is dead. How did this get 14+ points?
- Spiritus 13y agoBecause the actual content of the article is interesting, it's as applicable to Pillow as it is to PIL.
- tedunangst 13y agoUnreadable in mobile safari. The text is jammed into one skinny column that's so tiny it can't even word wrap effectively. It breaks lines in the middle of words. How and why do people keep going out of their way to make websites unreadable on phones?
- pawn 13y agoOne hardly needs to go out of their way to make a page unreadable in one browser. Developing proper CSS to support cross-browser, mobile-friendly websites to this day still isn't common knowledge for all developers. And it's almost impossible for most people to test their site across different mobile platforms themselves. For example, this website looks fine on my Windows phone. I'd have no idea his website had an issue if you hadn't mentioned it. If I had been particularly impressed by the way his site looked, I might have been tempted to borrow his CSS and propagate the problem without realizing the problem was there.
- tedunangst 13y agoI wish people would simply not bother being mobile friendly if they can't do it right. I have no trouble reading desktop oriented sites on my phone. Maybe it's cumbersome, but at least I can zoom and pan. It's only when people dick around with fixed viewports and disabled zoom that I have issues.
- idbentley 13y agoPeople should consider checking out Wand as well. Really nice wrapper around ImageMagick. Very good pythonic interface.
- compcm 13y agoThanks for all the comments. I should obviously have used Pillow instead of PIL. This is the first time that I'm using a graphical library in Python. I hope to find the time to update the current post or write a new one that will address this.
- dahart 13y agoLove PIL/Pillow, for just about the easiest image I/O there is. I've been using it recently and needed a bit more industrial strength and speed than the library provides. PIL supports converting an image to/from a NUMPY array! (And the execution speed difference is definitely worth the effort...) Now my template for a new PIL script looks like this (all error checking removed for simplicity): from PIL import Image import numpy as np im = Image.open(args.input) rgb8 = np.array(im)[...,:3] rgb = rgb8.astype('float') / 256. # ... do stuff to 'rgb' using np rgb8 = np.clip(rgb * 256., 0, 255).astype('uint8') im = Image.fromarray(rgb8) im.save(args.output)