Brushshe is a simple and user-friendly raster graphics editor. Available for Windows and Linux.
or
or
- Install Python 3, if not installed;
- Download the code and unpack downloaded archive:
- Install CustomTkinter and Pillow - open terminal or command line and enter:
pip install customtkinter Pillow
- Run file
Brushshe/brushshe.py
.
- Open: You can open a picture from a file.
- Painting: You can choose a color, change the brush thickness and shape, and paint. You can change canvas size.
- Recoloring brush (new!): Draws through contours.
- Save to device: You can save picture to your PC in different formats (PNG, JPG, GIF, BMP, TIFF, WEBP, ICO, PPM, PGM, PBM).
- Undo and redo: You can undo and redo 10 last actions.
- Eraser: Removing excess with an eraser.
- Fill: Can fill areas of a drawing. Can work slowly on large areas, and not work on RGBA-images.
- Eyedropper: Right click on the desired place on the canvas to get its color and paint with it.
- Spray: Spray paint.
- Background: You can choose the background color.
- Stickers: You can add stickers from Brushshe sticker set (all sticker images are drawn by me or created by AI) and resize them. You can also add a sticker from a file.
- Text: You can place text and change its size.
- Frames: You can decorate the picture with frames.
- Shapes: Rectangle and oval (with or without fill), line, bezier curve.
- Effects: Blur, detail, contour, grayscale, inversion and other. It can be applied to the whole image or to the copied area. Not work on GIF images.
- My Gallery: Window showing images drawn in Brushshe and "saved to gallery". Images from the gallery are stored in
<user_home_folder>/Pictures/Brushshe Images
or<user_home_folder>/Brushshe Images
on some minimalistic Linux distributions. - Dark theme: There is a light and dark theme.
- Rotate: Rotate right, rotate left.
- Create screenshot: You can take a screenshot and draw on it. Not work on Linux with Wayland.
- Paste image from clipboard: You can paste image from clipboard.
- View: Zoom in, zoom out, reset zoom.
- Change size: You can change the size by cropping or scaling.
- Palettes: There are 3 built-in palette sets in the settings, and if there are not enough of them, you can load your own from .hex files.
- Brush smoothing: Brush smoothing with params.
- Cut, copy and insert: Cut, copy or insert fragments. Works on Windows, but on Linux you need to install
xclip
(X11) orwl-paste
(Wayland). If they are not installed, everything else will work, but when you try to paste from the buffer, you will get a message that this is impossible. - Remove white background: Replace white or really light gray background to transparent.
- Palettes: use standard or custom HEX palettes.
- Ctrl+Z: undo
- Ctrl+Y: redo
- Ctrl+S: save to gallery
- Ctrl+F: flip colors
- Ctrl+B: brush
- Ctrl+E: eraser
- =: zoom in
- -: zoom out
- [: down by 1 the brush or other tools size
- ]: up by 1 the brush or other tools size
- {: down by 10 the brush or other tools size
- }: up by 10 the brush or other tools size
- Shift + mouse scroll: scrolling the canvas horizontally
- Middle mouse button: move canvas
The goal of the project is to provide a open-source, convenient, beautiful and multifunctional painting app using the CustomTkinter toolkit.
All contributions are welcome!
- Do not use third-party libraries. Only standard Python libraries, CustomTkinter and Pillow/PIL.
- Thanks Akascape for CTkColorPicker, CTkMenuBar, CTkMessagebox and CTkToolTip.
- Thanks Chip Viled for contributing.
The internationalization of this program has a simple principle - it determines what the computer's localization is (for example, en, ru, etc.), and then applies the Brushshe/locales/{localization}.json
file, where localization is the computer's localization.
- Project license - MPL 2.0 (old code under MPL 2.0 or GNU GPLv3)
- CTkColorPicker and CTkMenuBar license - CC0 1.0
- License for program translations (
Brushshe/locales/*.json
) - CC0 1.0 - Fonts - OFL
- Picture on screenshot - CC BY 4.0, by Chip Viled, drawn in Brushshe
Ruff is used to maintain code cleanliness.
Starting with version 2.0.0, each version will be given a code name based on the names of cities in alphabetical order. 2.0.0 starts with "S" because it is the 19th letter of the alphabet, and since 1.0.0 there have been 18 versions. Example: 2.0.0 - Skopje 2.1.0 - T.. 2.1.1 - T.. 2.2.0 - U.. 2.x.x - Z.. 2.x.x - A..