LazPaint: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: LazPaint
| Old | New | Line | |
|---|---|---|---|
| 1 | + | <div style="text-align: right; height: 1.5em"> | |
| 2 | + | ||
| 3 | + | </div> | |
| 4 | + | ||
| 5 | + | <div style="background: rgb(15,11,80); background: linear-gradient(90deg, rgba(15,11,80,1) 0%, rgba(55,55,157,1) 35%, rgba(34,171,103,1) 100%); border: 1px solid black; padding: 8px; border-radius:20px; text-align: center; padding-top: 1em; padding-bottom: 1em; color: white;"> | |
| 6 | + | ||
| 7 | + | <div> | |
| 8 | + | ||
| 9 | + | <span style="text-shadow:5px 5px 9px rgba(0,0,0,0.3); font-size: 25px">**LazPaint**</span> | |
| 10 | + | ||
| 11 | + | </div> | |
| 12 | + | ||
| 13 | + | \ | |
| 14 | + | <font size="+1">Free cross-platform image editor with raster and vector layers, written in Lazarus (Free Pascal).</font>\ | |
| 15 | + | \ | |
| 16 | + | <span style="padding: 8px; border-radius:5px; border: 1px solid silver; text-transform: uppercase">[<font color="silver">Blog</font>](https://lazpaint.blogspot.com/)</span> <span style="padding: 8px; border-radius:5px; border: 1px solid silver; text-transform: uppercase">[<font color="silver">Last changes</font>](https://lazpaint.github.io/last/)</span> <span style="padding: 8px; border-radius:5px; border: 1px solid white; border-bottom: 4px solid white; text-transform: uppercase">Documentation</span> <span style="padding: 8px; border-radius:5px; border: 1px solid silver; text-transform: uppercase">[<font color="silver">Download</font>](https://lazpaint.github.io/)</span> <span style="padding: 8px; border-radius:5px; border: 1px solid silver; text-transform: uppercase">[<font color="silver">Screenshots</font>](http://lazpaint.blogspot.com/p/screenshots.html)</span> <span style="padding: 8px; border-radius:5px; border: 1px solid silver; text-transform: uppercase">[<font color="silver">Forum</font>](https://forum.lazarus.freepascal.org/index.php/board,46.0.html)</span> <span style="background-color: #3b5e98; padding: 8px; border-radius:5px; border: 1px solid #3b5ea0; font-weight: bold">[<font color="white">f</font>](https://www.facebook.com/LazPaint)</span> | |
| 17 | + | ||
| 18 | + | </div> | |
| 19 | + | ||
| 20 | + | <table> | |
| 21 | + | ||
| 22 | + | <tr> | |
| 23 | + | ||
| 24 | + | <td width="50%"> | |
| 25 | + | ||
| 26 | + | <div style="text-align: center"> | |
| 27 | + | ||
| 28 | + | <span style="background:#60d000; color:white; padding: 8px; border-radius:8px">[<font color=white>Donate</font>](http://sourceforge.net/donate/index.php?group_id=404555)</span> | |
| 29 | + | ||
| 30 | + | </div> | |
| 31 | + | ||
| 32 | + | <big>**History**</big> | |
| 33 | + | ||
| 34 | + | 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. | |
| 35 | + | ||
| 36 | + | </td> | |
| 37 | + | ||
| 38 | + | <td> | |
| 39 | + | ||
| 40 | + | ||
| 41 | + | ||
| 42 | + | </td> | |
| 43 | + | ||
| 44 | + | <td> | |
| 45 | + | ||
| 46 | + | <big>**Features**</big> | |
| 47 | + | ||
| 48 | + | [[LazPaint File|Files]]: read and write a variety of file formats, including layered bitmaps and 3D files. | |
| 49 | + | ||
| 50 | + | [[LazPaint Tools|Tools]]: many tools are available to draw on the layers. | |
| 51 | + | ||
| 52 | + | [[LazPaint Edit|Edit/Select]]: select parts of an image with antialiasing and modify the selection as a mask. | |
| 53 | + | ||
| 54 | + | [[LazPaint Windows|View]]: color window, layer stack window and toolbox window. | |
| 55 | + | ||
| 56 | + | [[LazPaint Command line|Command line]]: call LazPaint from a console. | |
| 57 | + | ||
| 58 | + | [[LazPaint scripts|Scripts]]: scripts are provided to do layer effects. You can as well write your own [Python](https://www.python.org/) scripts. | |
| 59 | + | ||
| 60 | + | </td> | |
| 61 | + | ||
| 62 | + | </tr> | |
| 63 | + | ||
| 64 | + | </table> | |
| 65 | + | ||
| 66 | + | ### Quick start | |
| 67 | + | ||
| 68 | + | <table> | |
| 69 | + | ||
| 70 | + | <tr> | |
| 71 | + | ||
| 72 | + | <td width="50%"> | |
| 73 | + | ||
| 74 | + | <big>**Useful keys**</big> | |
| 75 | + | ||
| 76 | + | - Maintaining Space key down switches temporarily in move mode | |
| 77 | + | - F6 key hides/shows all tool windows | |
| 78 | + | - Ctrl key aligns to image pixels and limits possible angles with rotation tool | |
| 79 | + | - Backspace key erases last point in a polygon or last letter in a text | |
| 80 | + | - Enter key releases the selection | |
| 81 | + | ||
| 82 | + | Right mouse button can be used to: | |
| 83 | + | ||
| 84 | + | - Swap drawing colors temporarily | |
| 85 | + | - Subtract from selection (selection tool) | |
| 86 | + | - Define reference position (light position for shaded text and shapes, rotation center, clone tool source) | |
| 87 | + | - Finish a shape (polygon, curve) | |
| 88 | + | - Rotate a shape (clicking corners) | |
| 89 | + | ||
| 90 | + | Left clicking in the small color preview will select the pen / background / outline color or if it is a gradient, the start / end color, to be edited with the color chooser. | |
| 91 | + | ||
| 92 | + | </td> | |
| 93 | + | ||
| 94 | + | <td> | |
| 95 | + | ||
| 96 | + | ||
| 97 | + | ||
| 98 | + | </td> | |
| 99 | + | ||
| 100 | + | <td> | |
| 101 | + | ||
| 102 | + | <big>**Video tutorials**</big> | |
| 103 | + | ||
| 104 | + | Video tutorials are available on Youtube : | |
| 105 | + | ||
| 106 | + | - [Getting started](http://www.youtube.com/watch?v=9G6XcQdBtDo) | |
| 107 | + | - [Advanced drawing tools](http://www.youtube.com/watch?v=UEGQk1UhJ2w) | |
| 108 | + | - [Using selection tools](http://www.youtube.com/watch?v=6zWohQYLW3g) | |
| 109 | + | - [Text with projected shadow](http://www.youtube.com/watch?v=EmKzqKneJeI) | |
| 110 | + | - [Drawing a vortex](http://www.youtube.com/watch?v=9z6WgIaUYwQ) | |
| 111 | + | - [Export for Krita](http://www.youtube.com/watch?v=FFEZpl15Rb4) | |
| 112 | + | - [Using layers, magic wand and perspective](http://www.youtube.com/watch?v=Hxinfs6ziFc) | |
| 113 | + | - [Draw a fire](http://www.youtube.com/watch?v=yWgo0fcdOSg) (*overlay* blending mode) | |
| 114 | + | - [Draw lightnings](http://www.youtube.com/watch?v=69cHd5W-Zyg) (*negation* blending mode) | |
| 115 | + | - [Draw a neon with blur](http://www.youtube.com/watch?v=1rtHSPAUDnA) (*lighten* blending mode) | |
| 116 | + | - [Spline selection and glow effect](http://www.youtube.com/watch?v=Lewg3iYkln8) (*glow* blending mode) | |
| 117 | + | - [Drop shadow](https://www.youtube.com/watch?v=rsdPha36y50) (example of layer effect) | |
| 118 | + | ||
| 119 | + | </td> | |
| 120 | + | ||
| 121 | + | </tr> | |
| 122 | + | ||
| 123 | + | </table> | |
| 124 | + | ||
| 125 | + | ### Download | |
| 126 | + | ||
| 127 | + | <table> | |
| 128 | + | ||
| 129 | + | <tr> | |
| 130 | + | ||
| 131 | + | <td bgcolor="#FFFFe0" style="border: 1px solid black; padding: 8px; text-align: center; border-radius:10px" width="30%"> | |
| 132 | + | ||
| 133 | + | *Binaries can be downloaded on GitHub for Windows, Linux and macOS.* | |
| 134 | + | ||
| 135 | + | **[Download](https://lazpaint.github.io)** **[Portable](https://portableapps.com/apps/graphics_pictures/lazpaint-portable)** | |
| 136 | + | ||
| 137 | + | [Support this project](http://sourceforge.net/donate/index.php?group_id=404555) | |
| 138 | + | ||
| 139 | + | [[LazPaint Make it portable|How to make a portable version]] | |
| 140 | + | ||
| 141 | + | </td> | |
| 142 | + | ||
| 143 | + | <td> | |
| 144 | + | ||
| 145 | + | ||
| 146 | + | ||
| 147 | + | </td> | |
| 148 | + | ||
| 149 | + | <td> | |
| 150 | + | ||
| 151 | + | **Source code** | |
| 152 | + | ||
| 153 | + | The source code can be downloaded on GitHub: | |
| 154 | + | ||
| 155 | + | LazPaint: <https://github.com/bgrabitmap/lazpaint/> | |
| 156 | + | ||
| 157 | + | BGRAControls: <https://github.com/bgrabitmap/bgracontrols/> | |
| 158 | + | ||
| 159 | + | BGRABitmap: <https://github.com/bgrabitmap/bgrabitmap/> | |
| 160 | + | ||
| 161 | + | Dependencies: | |
| 162 | + | ||
| 163 | + | 1. LazPaint depends on [[BGRAControls]] and [[BGRABitmap]]. | |
| 164 | + | 2. [[BGRAControls]] depends on [[BGRABitmap]]. | |
| 165 | + | ||
| 166 | + | You can download the source code and compile it for a specific platform. MacOS version is now fully functional. | |
| 167 | + | ||
| 168 | + | </td> | |
| 169 | + | ||
| 170 | + | </tr> | |
| 171 | + | ||
| 172 | + | </table> | |
| 173 | + | ||
| 174 | + | ### Compilation of latest version | |
| 175 | + | ||
| 176 | + | 1. Get **Lazarus** as a package in your distribution or download it at <https://sourceforge.net/projects/lazarus/files/> | |
| 177 | + | 2. Open **Lazarus** to check it works | |
| 178 | + | 3. Download latest version of *BGRABitmap* at <https://github.com/bgrabitmap/bgrabitmap/releases> | |
| 179 | + | 4. Open the package file *BGRABitmapPack.lpk* in **Lazarus** | |
| 180 | + | 5. Download latest version of *BGRAControls* at <https://github.com/bgrabitmap/bgracontrols/releases> | |
| 181 | + | 6. Open the package file *bgracontrols.lpk* in **Lazarus** | |
| 182 | + | 7. Download *LazPaint* at <https://github.com/bgrabitmap/lazpaint/releases> | |
| 183 | + | 8. Open the package file *lazpaintcontrols.lpk* in **Lazarus** | |
| 184 | + | 9. Open the project file *lazpaint.lpi* or *lazpaint.lpr* in **Lazarus** (choose to Open project if prompted) | |
| 185 | + | 10. Click the green triangle "Run" and check if the program is working | |
| 186 | + | 11. Close *LazPaint* and close **Lazarus** and go in the *release* folder of the project | |
| 187 | + | ||
| 188 | + | The essential files are: the executable file, the readme file, the *models*, *i18n* and *scripts* folders. | |
| 189 | + | ||
| 190 | + | Additional files and instructions are in *release* folder for each platform: | |
| 191 | + | ||
| 192 | + | - ***windows***: run the batch file *stage.bat* to generate a *lazpaint32* and *lazpaint64* folders that contains everything (it adds particular support for WebP and RAW images by adding *dcraw.exe* and *libwebp.dll*). | |
| 193 | + | - ***macOS***: go in the folder with the terminal and call *./makedmg.sh* to generate the bundle. | |
| 194 | + | - ***debian***: go in the folder with the terminal and call *./makedeb.sh* to generate the DEB package and the TAR.GZ file. | |
| 195 | + | ||
| 196 | + | Note: when debugging on Windows, you may want to have support for WebP and RAW images. You can do that by copying the *dcraw.exe* and *libwebp.dll* files next to the compiled files (for example *debug\i386-win32* for 32-bit version). | |
| 197 | + | ||
| 198 | + | ### Screenshots | |
| 199 | + | ||
| 200 | + | #### LazPaint on Linux (and dark theme) | |
| 201 | + | ||
| 202 | + | <figure> | |
| 203 | + | <img src="Lazpaint_version_7.png" title="Lazpaint_version_7.png" /> | |
| 204 | + | <figcaption>Lazpaint_version_7.png</figcaption> | |
| 205 | + | </figure> | |
| 206 | + | ||
| 207 | + | #### LazPaint on Windows | |
| 208 | + | ||
| 209 | + | <figure> | |
| 210 | + | <img src="Lazpaint_curve_redim.png" title="Lazpaint_curve_redim.png" /> | |
| 211 | + | <figcaption>Lazpaint_curve_redim.png</figcaption> | |
| 212 | + | </figure> | |
| 213 | + | ||
| 214 | + | #### LazPaint on Puppy Linux | |
| 215 | + | ||
| 216 | + | <figure> | |
| 217 | + | <img src="lazpaint6_puppy.png" title="lazpaint6_puppy.png" /> | |
| 218 | + | <figcaption>lazpaint6_puppy.png</figcaption> | |
| 219 | + | </figure> | |
| 220 | + | ||
| 221 | + | ### Interface | |
| 222 | + | ||
| 223 | + | 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. | |
| 224 | + | ||
| 225 | + | 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. | |
| 226 | + | ||
| 227 | + | ### Image manipulation | |
| 228 | + | ||
| 229 | + | An image can be resampled, flipped horizontally and vertically. | |
| 230 | + | ||
| 231 | + | Smart zoom x3 : resize the image x3 and detects borders; this provides a useful zoom with ancient games sprites. | |
| 232 | + | ||
| 233 | + | ### Color manipulation | |
| 234 | + | ||
| 235 | + | - Colorize : set the color of an image while preserving intensities | |
| 236 | + | - Shift colors : cycle colors and change colorness (saturation) | |
| 237 | + | - Intensity : make colors lighter or darker without making them white | |
| 238 | + | - Lightness : make colors lighter or darker by making them whiter | |
| 239 | + | - Normalize : use the whole range of each color channel and alpha channel | |
| 240 | + | - Negative : invert colors (with gamma correction) | |
| 241 | + | - Linear negative : invert colors (without gamma correction) | |
| 242 | + | - Grayscale : converts colors to grayscale with gamma correction | |
| 243 | + | ||
| 244 | + | ### Filters | |
| 245 | + | ||
| 246 | + | Filters can be applied to the whole image or to the active selection. | |
| 247 | + | ||
| 248 | + | - Radial blur : non directional blur | |
| 249 | + | - Motion blur : directional blur | |
| 250 | + | - Custom blur : blur according to a mask | |
| 251 | + | ||
| 252 | + | - Sharpen : makes contours more accute, complementary to Smooth | |
| 253 | + | - Smooth : softens whole image, complementary to Sharpen | |
| 254 | + | - Median : computes the median of colors around each pixel, which softens corners | |
| 255 | + | ||
| 256 | + | - Contour : draws contours on a white background (like a pencil drawing) | |
| 257 | + | - Emboss : draws contours with shadow | |
| 258 | + | ||
| 259 | + | - Sphere : spherical projection | |
| 260 | + | - Cylinder : cylinder projection | |
| 261 | + | - Clouds : add clouds of the current pen color | |
| 262 | + | ||
| 263 | + | --- | |
| 264 | + | *From the Free Pascal wiki, page "LazPaint", as it stood on 2024-01-30 after a change by Circular, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
