From Free Pascal wiki

Deutsch (de) English (en) suomi (fi) français (fr)


LazPaint is an image editor with layers and transparency. It supports the OpenRaster format so it can interoperate with MyPaint, Gimp and Krita.


lazpaint preview.jpg


LazPaint was started to demonstrate the capabilities of the graphic library BGRABitmap. It provides advanced drawing functions in Lazarus development environment. Both provided a source of inspiration for the other and finally LazPaint became real image editor. Thanks to the help of Lazarus community, the program has been compiled on Windows, Linux and macOS.



Files: read and write a variety of file formats, including layered bitmaps and 3D files.

Tools: many tools are available to draw on the layers.

Edit/Select: select parts of an image with antialiasing and modify the selection as a mask.

View: color window, layer stack window and toolbox window.

Command line: call LazPaint from a console.

Quick start

Useful keys

  • Maintaining Space key down switches temporarily in move mode
  • F6 key hides/shows all tool windows
  • Ctrl key aligns to image pixels and limits possible angles with rotation tool
  • Backspace key erases last point in a polygon or last letter in a text
  • Enter key releases the selection

Right mouse button can be used to:

  • Swap drawing colors temporarily
  • Subtract from selection (selection tool)
  • Define light position (shaded text, shaded shapes)
  • Finish a shape (polygon, curve)

Video tutorials

Video tutorials are available on Youtube :


Binaries can be downloaded on GitHub for Windows, Linux and macOS.

Download Portable

Support this project

How to make a portable version


Source code

The source code can be downloaded on GitHub. Here you will find LazPaint and BGRABitmap:

GitHub lazpaint: GitHub bgracontrols:


  1. LazPaint depends on BGRAControls and BGRABitmap.
  2. BGRAControls depends on BGRABitmap.

You can download the source code and compile it for a specific platform. MacOS version is a bit experimental.

Compilation of latest version

  1. Download Lazarus at
  2. Open Lazarus to check it works
  3. Download latest version of BGRABitmap at
  4. Open the package file BGRABitmapPack.lpk in Lazarus
  5. Download latest version of BGRAControls at
  6. Open the package file bgracontrols.lpk in Lazarus
  7. Download LazPaint at
  8. Open the package file lazpaintcontrols.lpk in Lazarus
  9. Open the project file lazpaint.lpi or lazpaint.lpr in Lazarus (choose to

Open project if prompted)

  1. Click the green triangle "Run" and check if the program is working
  2. Close LazPaint and close Lazarus and go in the release folder of the project
  3. Keep the following: the executable file, the readme file, the models and i18n folders.
  4. Put those files in any distribution format you find suitable, keeping the directory structure.

To build a Debian package or a MacOS bundle, additional steps are of course required. You will find more explanations in the Debian and MacOS folder inside the release folder.


LazPaint on Linux (and dark theme)

Lazpaint version 7.png

LazPaint on Windows

Lazpaint curve redim.png

LazPaint on Puppy Linux

lazpaint6 puppy.png


Many common actions can be done with the toolbar. Zoom can be changed with the magnifying glass (+ or -), or by clicking on the 1:1 button to show the image at its original size in pixels, or with the zoom fit button to set the zoom so that the whole image be within the window.

It is possible to undo/redo the 200 last operations. If you have a doubt on what you are drawing, undo back to the beginning, save a copy, and redo the modifications before going further.

Image manipulation

An image can be resampled, flipped horizontally and vertically.

Smart zoom x3 : resize the image x3 and detects borders; this provides a useful zoom with ancient games sprites.

Color manipulation

  • Colorize : set the color of an image while preserving intensities
  • Shift colors : cycle colors and change colorness (saturation)
  • Intensity : make colors lighter or darker without making them white
  • Lightness : make colors lighter or darker by making them whiter
  • Normalize : use the whole range of each color channel and alpha channel
  • Negative : invert colors (with gamma correction)
  • Linear negative : invert colors (without gamma correction)
  • Grayscale : converts colors to grayscale with gamma correction


Filters can be applied to the whole image or to the active selection.

  • Radial blur : non directional blur
  • Motion blur : directional blur
  • Custom blur : blur according to a mask
  • Sharpen : makes contours more accute, complementary to Smooth
  • Smooth : softens whole image, complementary to Sharpen
  • Median : computes the median of colors around each pixel, which softens corners
  • Contour : draws contours on a white background (like a pencil drawing)
  • Emboss : draws contours with shadow
  • Sphere : spherical projection
  • Cylinder : cylinder projection
  • Clouds : add clouds of the current pen color