# NodeBox

Create visual output with Python programming code
Home Download Reference Tutorial Library Gallery About

# PhotoBot

## Description

PhotoBot implements Adobe Photoshop - or any other image manipulation software tool (like Corel PhotoPaint or Gimp) - functionality in NodeBox. For example: with PhotoBot, you can create a tranparent canvas and add image layers to it; transform each layer with rotations, scaling, distort, flip; blend it with the layers below using multiply, overlay, hue blend modes, apply filters like blur, use gradient masks, make polygonal lasso selections, flatten the canvas, and export it to a .png image file with a transparent background.

PhotoBot is built on PIL, the Python Imaging Library, with an easy set of commands open to moderately experienced NodeBox-users. PIL 1.1.4 is bundled in the download below. The advantage of PhotoBot over Photoshop, although a lot slower, is that it can do things in a loop, or store your favourite image manipulations in a function, which you can then use on any image. This way you invent the technique once, store it as a NodeBox script, and apply it to your images while you go out to lunch.

Please report any errors (tomdesmedt@trapdoor.be). PhotoBot is currently at version Beta 0.8, read the to-do list here for a future release.

## Download

| photobot.zip (450KB) Last update: PhotoBot 0.8 beta for NodeBox 1.0rc4. If you have Mac OS X 10.4 we recommend Core Image instead.

## Canvas commands in the PhotoBot library

- canvas()
- Canvas.layers[]
- Canvas.layer()
- Canvas.fill()
- Canvas.gradient()
- Canvas.merge()
- Canvas.flatten()
- Canvas.export()
- Canvas.draw()
- Canvas.preferences()

## Layer commands in the PhotoBot library

- Layer.index()
- Layer.duplicate()
- Layer.copy()
- Layer.delete()
- Layer.up()
- Layer.down()
- Layer.opacity()
- Layer.multiply()
- Layer.screen()
- Layer.overlay()
- Layer.hue()
- Layer.color()
- Layer.mask()
- Layer.translate()
- Layer.scale()
- Layer.distort()
- Layer.rotate()
- Layer.flip()
- Layer.levels()
- Layer.brightness()
- Layer.contrast()
- Layer.sharpness()
- Layer.desaturate()
- Layer.invert()
- Layer.blur()
- Layer.bounds()
- Layer.select()
- Layer.statistics()

## Pixel commands in the PhotoBot library

- Layer.pixels[]
- Layer.pixels.update()
- Layer.pixels.convolute()