Python image program
Project description
Installation and importation
pip install python-imager
import pythonImager
pythonImager
pythonImager is a python package for creating, editing, showing and saving images with python.
As it is based on opencv-python but not all of these functions are implemented here, you can still use their functions with this library to get the best result of them. But still, open an issue on GitHub if you would like me to implement functions you need.
I would be so happy if you request or propose any modification of this package :-)
Images
Creating an image
To create an image you just need to proceed as following:
img = Image()
You can modify the parameters of this image specifying it's size, background color and name via the following function:
img = new_img(dimensions=[200, 500], background=COL.cyan, name="myImage")
Definition for an image of 200x500 pixels with a cyan background color with "myImage" as name.
You can also import a local image:
img = Image(name="myLocalImage").open_img(path)
Showing an image
To show an image, you have to build it first, even though you could use Image.show_().
So, to properly show an image, proceed as following:
img = new_img()
img.build()
while img.is_opened():
img.show()
You can use img = Image().build() too if you prefer as Image.build() returns itself as an Image.
Neverthmore I recommend to build it later if you want to modify it before showing it.
Closing an image
Though you can close the window with key esc, you can also close it with Image.close().
Even if it may not seem useful right now, you can combine it to a
button's function to create a close button. cf. Buttons.
Editing an image
To edit an image, we'll stick with the empty basic image:
img = Image()orimg = new_img()
Then, you can modify your image using inner functions of the Image class.
You have 5 inner functions to draw shapes:
Image.line(p1, p2, colour, thickness, lineType)Image.rectangle(p1, p2, colour, thickness, lineType)Image.circle(ct, radius, colour, thickness, lineType)Image.ellipse(cr, (radius1, radius2), colour, thickness, lineType, startAngle, endAngle, angle)Image.polygon(pts:[pt], colour, thickness, lineType)
And you an inner function to write text:
Image.text(text, ct, col, thickness, fontsize, ...)
This function uses the unicode.ttf font (cf. https://www.unifoundry.com/unifont/index.html)
To draw a diagonal line accross the image, you could proceed as it follows:
img.line(p1=[0, 0], p2=img.size(), colour=COL.red, thickness=5, lineType=2)
You now have a line going from p1 (0, 0) to p2 (bottom right), of red colour, thickness of 5px and the lineType is setted to 2 (there's 0, 1 and 2).
To use colors, use
COL.
You can either chose a color in col defined as aCSScolor name (camelBack written) or using hexadecimal RGB withCOL.new("#xxxxxx")to use a custom color.
Coordinates
The top-left of the image is at [0, 0] (XY coordinates).
Define a point
Define a var of type list or tuple of len 2. Values may be int or float.
Function with points
There are some useful functions to manipulate coordinates:
ct_sg(p1, p2)
Standing for center of segment from p1 to p2, returns the point at the center of the segment.pt_sg(p1, p2, m1, m2)
Standing for point in segment p1, p2, does asct_sg()but you can definem1andm2to increase the weight of the sides to approach to an end.coosCircle(ct, radius, angle)
Gets the coordinates as if you were using a compass, from thectto a distance ofradiusto anangle.coosEllipse(ct, radiuses, angle, rotation)
Similar tocoosCircle(), works for elipses.dist(p1, p2)
Returns the distance of two points infloat.
Buttons
To add buttons to your images, you can use the sub-class Image.Button using Image.button().
Defining a button:
button = img.button(name, coos)
button.on_click(funct, params)
Pass a function to the button to execute when clicked on.
Use params if you have variables to give to your funct.
Removing buttons
Use Image.remove_button()
button = img.button(name, coos)
img.remove_button(button)
You will have to rewrite the image if you want the button to disapear.
To do so, I would recomend you to copy the image withImage.copy()before creating your button and restoring the copy of the image after deleting the button.
Trackbars
To add trackbars to your images, you can use the sub-class Image.Trackbar using Image.trackbar().
Defining a trackbar:
trackbar = img.trackbar(name, coos, min, max, val)
Removing trackbars
Use Image.remove_trackbar()
trackbar = img.trackbar(name, coos, min, max, val)
img.remove_trackbar(trackbar)
You will have to rewrite the image if you want the trackbar to disapear.
For more info, cf. Removing buttons
Access mouse info
Whenever the mouse is on your python window, you can get info about the mouse using Image.Mouse.get().
event, x, y, flags = img.Mouse.get()
Events are cv2 defined events, cf. cv2 events.
x and y are the position of the mouse on the window.
Flags are cv2 defined events, cf. cv2 flags.
Layouts
Layouts are deprecated it's been a while since i've taken a glance on them.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_imager-1.5.4.tar.gz.
File metadata
- Download URL: python_imager-1.5.4.tar.gz
- Upload date:
- Size: 2.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b090f37ab1f1353a7b7f0fa66f44dc899ebbb51ade2e82ed716ef8581d919a65
|
|
| MD5 |
fa3c87c570c25cbd69c4c178ccd822c8
|
|
| BLAKE2b-256 |
d6984abf51a23afd1845bfbbdbb3fed2faba4bc64dfafe4807ddb3715b071ecd
|
File details
Details for the file python_imager-1.5.4-py3-none-any.whl.
File metadata
- Download URL: python_imager-1.5.4-py3-none-any.whl
- Upload date:
- Size: 2.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f055499636e5226fe4ac08d9996f0537f609d7e0fa13be85688c84223b53b182
|
|
| MD5 |
8be00075cd2c1e9522ee18644059d6c0
|
|
| BLAKE2b-256 |
81afc0ff20a7c3aecc78b6a689b579d496ed5f9f5becf9259e80b35e83a5dd5c
|