Forum > BGRABitmap and LazPaint

LazPaint (alpha-blending, antialiasing, filters)

(1/218) > >>

circular:
LazPaint is a painting program like PaintBrush or Paint .Net implementing drawing functions directly in Free Pascal. (Donate)

Layers can be combined with various blend modes. The drawing takes into account the level of transparency (alpha channel), shape borders are rendered with antialiasing, and color composition includes gamma correction.

With help from the Lazarus community LazPaint has been successfully compiled to work on Windows, Linux Mint, Puppy Linux and MacOS.

It is on GitHub :
https://github.com/bgrabitmap/lazpaint

Wiki help here :
http://wiki.lazarus.freepascal.org/LazPaint

Features
Layered file formats
LZP (read/write): LazPaint file format
ORA (read/write): OpenRaster exchange file format
PDN (read): Paint.NET images
oXo (read): PhoXo images
PSD (read flattened): Photoshop images

Flat images
BMP (read/write): uncompressed bitmaps (including with alpha channel, however many programs do not read the transparency information)
GIF (read(write): user can edit a frame if animated
ICO/CUR (read/write): icon, user can edit a size
JPEG : the well known compression however lossy
PCX (read/write) : Personal Computer eXchange
PNG (read/write) : Portable Network Graphic
TGA (read/write) : also called Targa
TIFF (read/write) : not all compression modes are supported
WebP (read/write) : Google Web image
XPM (read/write) : X PixMap (small C-like format)
XWD (read) : X Window Dump (screen capture)
DNG, CR2, NEF, ARW... (read) : Raw images from camera

Color manipulation
Curves : adjust curves of RGBA channels or by hue, luminosity, saturation.
Posterize : use a reduced number of values for RGB or for luminosity
Colorize : set the color of an image while preserving intensities
Shift colors : cycle colors and change colorness (saturation)
Complementary colors : use complementary colors without changing the lightness
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

Selection
Selection is composed with rectangles, ellipses, polygons, magic wand and pen drawing.
It contains levels of transparency, so that the border of an elliptic region has antialiasing.
With the left button you can add elements to the selection, and with the right button, you can remove elements from it.
The rotation tool allows to rotate the current selection with a free angle.
Selection fit option reduces the selection to non transparent pixels.                                                                                       
DPI Aware
LazPaint looks the same on high DPI resolutions. It works as well on Retina display and is aware of dark theme. One can change switch to dark theme manually as well.

Languages
LazPaint is available in the following languages : Arabic, Bulgarian, Chinese, Czech, Dutch, German, English, French, Finnish, Japanese, Kabyle, Latvian, Portuguese, Russian, Spanish and Swedish

Filters
Radial blur : non directional blur
Motion blur : directional blur
Custom blur : blur according to a mask
Pixelate : fake big pixels
Sharpen : makes contours more accute, complementary to Smooth
Smooth : softens whole image, complementary to Sharpen
Noise : draw random colors and intensities
Median : computes the median of colors around each pixel, which softens corners
ClearType : add a ClearType effect (displacement of RGB channels)
Inverse ClearType : remove a ClearType effect (displacement of RGB channels)
Contour : draws contours on a white background (like a pencil drawing)
Emboss : draws contours with shadow
Shaded map : draw lightened/shaded map use the image as a map of altitudes
Sphere : spherical projection
Twirl : twirl distortion (like water flowing in hole)
Cylinder : cylinder projection

Command line
LazPaint can be used from the command line to perform a variety of tasks.
From converting one image to another, creating a new image from sctratch, or applying filters to an image.
Following is a list of some of its commands.....

General Commands

HorizontalFlip,  VerticalFlip,  SwapRedBlue,  RotateCW
RotateCCW,  Resample,  Opacity,  Gradient,  New

Filter commands

You can apply filters with default values.
Blur filters : BlurPrecise, BlurRadial, BlurFast, BlurCorona, BlurDisk, BlurMotion, BlurCustom
Pixel filters : Sharpen, Smooth, Median, Emboss, Contour, Grayscale, Negative, LinearNegative, Normalize, SmartZoom3
Deformation filters : Sphere, Twirl, Cylinder, Plane
Rendering filters : PerlinNoise, CyclicPerlinNoise, Clouds, CustomWater, Water, Wood, WoodVertical, Plastik, MetalFloor, Camouflage, SnowPrint, Stone, RoundStone, Marble

fabienwang:
Very nice circular !
this is already better than mspaint !

if i can suggest you for the next steps:
- add select tool
- filters apply only on selection
- a script language for custom filters (pascal script or lua) (or be able to use Gimp ones
- filename in titlebar + multiple images open in tabs?

benohb:
I was trying to make a similar program :D :D
the Library "bgrabitmap" in ubuntu is slow ..."rather"

# notice
You can change the place of drawing in the window

In the example with the library Unit1.pas / line 274


--- Code: --- Bmp.Draw(Canvas,rect(0,0,ClientWidth,ClientHeight),True);

--- End code ---

0,0 is The beginning of the drawing in the window


# notice2

Can not compile your program linux :'( :'(
I think the problem  in "bgrabitmap"

Thank you

circular:

--- Quote from: FabienWang on February 06, 2011, 05:23:25 am ---Very nice circular !
this is already better than mspaint !

if i can suggest you for the next steps:
- add select tool
- filters apply only on selection
- a script language for custom filters (pascal script or lua) (or be able to use Gimp ones
- filename in titlebar + multiple images open in tabs?

--- End quote ---
That's right. I was already thinking about select tool. I would like it to be a kind of mask, with a level from 0 to 255, like a grayscale bitmap.

If you want to do it, you're welcome !  ::)


--- Quote from: benohb on February 06, 2011, 07:28:44 am ---I was trying to manufacture a similar program :D :D
the Library "bgrabitmap" in ubuntu is slow ..."rather"
--- End quote ---
I know. If you have an idea to make it faster, it would be welcome.

The filters are also slow, if someone now how to boost them...


--- Quote ---# noting
You can change the place of drawing in the window

In the example with the library Unit1.pas / line 274


--- Code: --- Bmp.Draw(Canvas,rect(0,0,ClientWidth,ClientHeight),True);

--- End code ---

0,0 is The beginning of the drawing in the window
--- End quote ---
I do not understand.


--- Quote ---# noting2

Can not compile your program linux :'( :'(
I think the problem  in "bgrabitmap"
--- End quote ---
What error message do you get ?

LazaruX:
I tested it for 2 mins only and I think:
Very good project.
Very professional.
Well done
I think with small improvements this could become the new Paint.NET, easier thant GIMP and more powerfull than PBrush.exe

Navigation

[0] Message Index

[#] Next page

Go to full version