|
1
|
|
|
2
|
- Pythonic library for
- Loading and Saving images (diverse formats)
- Scaling, cropping, compositing, transforms, bands (e.g. alpha channel)
- Drawing text and basic shapes
- Akin to the program GIMP (*GIMP also has a nice python API called
GIMP-Python)
|
|
3
|
- Image resizing or format conversions
- Adding save/load support into your application
- * Font support also handy
- Chart generation (also see PIDDLE piddle.sf.net)
- Thumbnail generation
- Watermarking or adding legend
|
|
4
|
- Image – from file or newly created
- >>> import Image
- >>> im = Image.open(“vacation.jpeg")
- >>> newIm = Image.new (“RGBA”, (640, 480), (255, 0, 0))
- Format – file format
- >>> print im.mode, im.size, im.format
- RGB (1024, 768) JPEG
- >>> im.save (“vacation.png”)
OR
- >>> im.save (“vacation.png”, “PNG”)
|
|
5
|
- Resampling Filters
- NEAREST, BILINEAR, BICUBIC, ANTIALIAS
- >>> smallIm = im.resize ( (128, 128), Image.ANTIALIAS)
- Sizes – tuple of width and height
- Bounding boxes – tuples of x1, y1, x2, y2
|
|
6
|
- Mode – gray scale “L”, color “RGBA” “RGB”, etc.
- 1 (1-bit pixels, black and white, stored with one pixel per byte)
- L (8-bit pixels, black and white)
- P (8-bit pixels, mapped to any other mode using a colour palette)
- RGB (3x8-bit pixels, true colour)
- RGBA (4x8-bit pixels, true colour with transparency mask)
- CMYK (4x8-bit pixels, colour separation)
- YCbCr (3x8-bit pixels, colour video format)
- I (32-bit integer pixels)
- F (32-bit floating point pixels)
- Color – specified as 32bit value, tuple, or string
- myColor = (255, 0, 0, 128) #
full red, with 50% alpha
- myColor = 0x7f0000ff # full red, with 50% alpha
- myColor = “#00ff00” # web color
- myColor = “rgb (75%, 0%, 0%)”
- myColor = “hsl (0, 100%, 50%)”
|
|
7
|
- Bands – the separate color channels
- >>> bands = im.split ()
- >>> rIm = bands [0]
- >>> aIm = bands [3]
- >>> remadeImage = Image.merge (“RGBA”, (rIm, gIm, bIm, aIm))
- >>> grayscaleIm = Image.open (“myAlpha.gif”)
- >>> remadeImage = myImage.putalpha (grayscaleIm) # replace the alpha band
|
|
8
|
- Thumbnails
- Modifies in-place
- Preserves aspect ratio
- >>> myImage.thumbnail ((128, 128), Image.ANTIALIAS)
- Crop
- >>> bounds = (100, 100, 400, 400)
- >>> cutoutIm = myImage.crop (bounds)
- Paste
|
|
9
|
- Blend/composite
- Rotate
- Transpose
- ROTATE_90/180/270, FLIP_TOP_BOTTOM, FLIP_LEFT_RIGHT
- >>> fixedIm = myImage.transpose (ROTATE_90)
|
|
10
|
- ImageDraw module creates drawing surface for image
- >>> import Image, ImageDraw
- >>> im = Image.open(“vacation.jpeg")
- >>> drawSurface = ImageDraw.Draw (im)
- >>> import Image, ImageDraw
- >>> im = Image.open(“vacation.jpeg")
- >>> im.getpixel ( (4,4) )
- >>> im.putpixel ( (4,4), (255,0,0))
|
|
11
|
- Basic methods of drawing surface
- chord arc pieslice (bounds, strtAng, endAng)
- ellipse (bounds)
- line (coordSeq)
- point (coordSeq)
- polygon (coordSeq)
- rectangle (bounds) # first
coord inclusive, second coord exclusvie
- Common optional args for these methods
- fill=fillColor
- outline=outlineColor
|
|
12
|
- Text
- >>> drawSurface = ImageDraw.Draw (im)
- >>> drawable.text ((10, 10), “Hello”, fill=(255,0,0),
font=None)
- TrueType Font support>
- >>> import ImageFont
- >>> ttFont = ImageFont.truetype (“arial.ttf”, 16)
- >>> drawable.text ((10, 10), “Hello”, fill=(255,0,0),
font=ttFont)
|
|
13
|
- Python Image Library
- http://www.pythonware.com/products/pil/
- Other documentation sources
- PIL Handbook
- http://effbot.org/imagingbook/
- Nice pdf from New Mexico Tech
- http://www.nmt.edu/tcc/help/pubs/pil/
|
|
14
|
- BMP
- BUFR (identify only)
- EPS (write-only)
- FITS (identify only)
- GIF
- GRIB (identify only)
- HDF5 (identify only)
- IM
- JPEG
- MPEG (identify only)
- MSP
- PALM (write only)
- PCX
- PDF (write only)
- PNG
- PPM
- TIFF
- WMF (identify only)
- XBM
- XV Thumbnails
- CUR (read only)
- DCX (read only) FLI, FLC (read only)
- FPX (read only)
- GBR (read only)
- GD (read only)
- ICO (read only)
- IMT (read only)
- IPTC/NAA (read only)
- MCIDAS (read only)
- MIC (read only)
- PCD (read only)
- PIXAR (read only)
- PSD (read only)
- SGI (read only)
- TGA (read only)
- WAL (read only)
- XPM (read only)
|