'Get stick bugged' video generator
A Python module and command-line tool that generates a Get Stick Bugged Lol video from any image.
gsbl python.jpg python.mp4 -r 760 475 -s 0.7
This script uses pylsd-nova to detect line segments in the image, Pillow to draw the lines as they move to form the stick bug, and MoviePy to create the video.
- Python 3.6 or later (any OS)
This package can be installed using pip:
pip install get-stick-bugged-lol
In the terminal
Installing the package will register the
gsbl command in the terminal (or you can use
python -m gsbl). To use the
input.png to generate the video
gsbl input.png output.mp4
-h, --helpshow this help message and exit
-r --resolution WIDTH HEIGHTwidth and height of the video (default: 720 720)
--img-bg-color R G BRGB background color while the image is visible (default: 0 0 0)
--line-color R G BRGB color of line segments (default: 255 255 211)
--line-bg-color R G BRGB background color after image disappears (default: 125 115 119)
-s --scale SCALEthe image scale passed to the line segment detector. Slightly lowering this may improve results in large images. This does not affect the image scale in the video (try --resolution instead). (default: 0.8)
In a Python script
from PIL import Image from gsbl.stick_bug import StickBug # Create the StickBug object sb = StickBug(Image.open('example.png')) # parameter can also just be a filepath # Change some properties if you want sb.video_resolution = (1280, 720) sb.lsd_scale = 0.5 # That's it! The video will be generated the first time you access it video = sb.video # MoviePy VideoClip # Or you can just save it sb.save_video('example.mp4') # If any settings were changed, the video will be regenerated the next time you access it. sb.line_color = (128, 0, 255) video_purple = sb.video
imagethe source PIL Image. You can set this when initializing
StickBug, or at any time by accessing the property. If you want, you can leave this parameter empty while initializing.
segmentsa numpy array of the 9 line segments detected. If the line segment detector hasn't run yet, that's done the first time this is accessed. The line segment detector will run again if any other properties have changed. This can also be set manually if you want. Each row of the array must contain the values
[x1, y1, x2, y2, width].
video(readonly) the MoviePy VideoClip generated by the script. If the video hasn't been generated yet, that's done the first time this is accessed. The video will be regenerated if any other properties have changed.
video_resolutionthe resolution of the video as a tuple
lsd_scalethe image scale passed to the line segment detector. Slightly lowering this may improve results in large images. This does not affect the image scale in the video.
img_bg_colorthe background color of the video while the image is visible
line_colorthe color of the line segments in the video
line_bg_colorthe background color of the video after the image disappears
This package is available under the MIT License. See LICENSE for more info.
This package makes use of the following external libraries:
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size get_stick_bugged_lol-1.0.0-py3-none-any.whl (2.6 MB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size get-stick-bugged-lol-1.0.0.tar.gz (2.6 MB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for get_stick_bugged_lol-1.0.0-py3-none-any.whl
Hashes for get-stick-bugged-lol-1.0.0.tar.gz