Xmas-Tree-GIF-Tool - Convert any given animated gif file into an animation in GIFT CSV format

Overview

This repo is made to participate in Matt Parker's XmasTree 2021 event.

Convert any given animated gif file into an animation in GIFT CSV format.

Convert a Gif:

  • First, run pip3 install -r requirements.txt to install the necessary packages.
  • To convert a gif you will need a CSV file with coordinates of the Xmas tree's LED lights; Matt Parker's 2021 coordinates are given in examples/coords_2021.csv.
  • Run this command: python3 convert.py
  • The output will be a CSV file in GIFT format which animates the given gif file according to the given LED coordinates.
  • In order to see the gif as clearly as possible, you need to look directly at the tree head-on from the positive X direction (as was discussed here).
  • This conversion also assumes that one frame in the gif corresponds to one frame in the output with no timing information.

Some optional parameters for convert.py:

  • -h, --help: display these options and exit.
  • -o, --output : Name of the output file. By default, the output file will be named export.csv.
  • --width : Dimension along which the width of the gif will be rendered. This is y by default.
  • --height : Dimension along which the height of the gif will be rendered. This is z by default.
  • --disable_aspect: Do not maintain the aspect ratio of the gif, and instead fit it exactly to the boundaries of the given coordinates.

Previewing a CSV file

This repo also provides the ability to preview a GIFT CSV file.

  • pip install requirements if not already
  • run: python3 animate.py
  • The result should be matplotlib's animated 3D dialog box running the animation.

Optional parameters for animate.py:

  • -h, --help: display these options and exit.
  • -f, --framerate : Define the framerate (in FPS) at which to playback the animation. Default is 30. Note that will large coordinate datasets, the framerate may be capped by what matplotlib can handle.

Examples

Provided in the examples directory are some gifs and their corresponding GIFT CSV files (generated with coords_2021.csv), which may be previewed as described above.

  • bad_apple_full.gif: obviously
  • bad_apple_14s.gif: just the first 14 seconds
  • amogus.gif: aπŸ…±ogus
  • rickroll_7s.gif: rickroll intro
  • circle.gif: just a static red circle. Good for finding the right angle from which to look at the tree.
Owner
Aven Zitzelberger
Aven Zitzelberger
Convert any binary data to a PNG image file and vice versa.

What is PngBin? The name PngBin comes from an image format file extension PNG (Portable Network Graphics) and the word Binary. An image produced by Pn

Nathan Young 87 Dec 22, 2022
Computer art based on joining transparent images

Computer Art There is no must in art because art is free. Introduction The following tutorial exaplains how to generate computer art based on a series

Computer Art 12 Jul 30, 2022
Pure Python bindings for the pure C++11/OpenCL Qrack quantum computer simulator library

pyqrack Pure Python bindings for the pure C++11/OpenCL Qrack quantum computer simulator library (PyQrack is just pure Qrack.) IMPORTANT: You must buil

vm6502q 6 Jul 21, 2022
The ctypes-based simple ImageMagick binding for Python

Wand Wand is a ctypes-based simple ImageMagick binding for Python, supporting 2.7, 3.3+, and PyPy. All functionalities of MagickWand API are implement

Eric McConville 1.2k Dec 30, 2022
This is an app that allows users to upload photos and display and store the photos in a file until the user deletes them.

Qt Photo App This is an app that allows users to upload photos and display and store the photos in a file until the user deletes them. Setup python3 -

Kathy Yang 5 Jan 22, 2022
Vignette is a Python library to create and manage thumbnails following the FreeDesktop standard.

Vignette Vignette is a Python library to create and manage thumbnails following the FreeDesktop standard. Thumbnails are stored in a shared directory

3 Feb 06, 2022
Quickly 'anonymize' all people in an image. This script will put a black bar over all eye-pairs in an image

Face-Detacher Quickly 'anonymize' all people in an image. This script will put a black bar over all eye-pairs in an image This is a small python scrip

Don Cato 1 Oct 29, 2021
🎢😀 Generate an image indicating what you are listening to 😳

I'm Listening to This (song that I've sent you an image about detailing its metadata in a nifty way) Few lines describing your project. πŸ“ Table of Co

Connor B - Viibrant 4 Nov 03, 2021
Automatic picture transmission(APT) protocol decoder for NOAA weather satellites

Automatic picture transmission(APT) decoder Automatic picture transmission protocol is used by NOAA satellites. They constantly send a frequency modul

Jayachandra Kasarla 25 Aug 05, 2022
ScreenTeX is a tool that grabs all text when taking a screenshot rather than getting an image.

The ScreenTeX project By: Seanpm2001 / ScreenTeX, Et; Al. Top README.md Read this article in a different language 🌐 List of languages Sorted by: A-Z

Sean P. Myrick V19.1.7.2 3 Oct 25, 2022
A 3D structural engineering finite element library for Python.

An easy to use elastic 3D structural engineering finite element analysis library for Python.

Craig 220 Dec 27, 2022
A Toolbox for Image Feature Matching and Evaluations

This is a toolbox repository to help evaluate various methods that perform image matching from a pair of images.

Qunjie Zhou 342 Dec 29, 2022
Python implementation of image filters (such as brightness, contrast, saturation, etc.)

PyPhotoshop Python implementation of image filters Use Python to adjust brightness and contrast, add blur, and detect edges! Follow along tutorial: ht

Kylie 87 Dec 15, 2022
Simple Python package to convert an image into a quantized image using a customizable palette

Simple Python package to convert an image into a quantized image using a customizable palette. Resulting image can be displayed by ePaper displays such as Waveshare displays.

Luis Obis 3 Apr 13, 2022
Image Processing HighPass Filter With Python

Image_Processing_HighPassFilter High Pass Filter take the high frequency and ignore the low frequency High Pass Filter can be use to sharpening an ima

Felix Pratamasan 1 Dec 27, 2021
Simple program to easily view Euler parameters in 3D.

Simple program to easily view Euler parameters in 3D.

5 Aug 20, 2021
Gallery written in Python to manage your photos

GalleryMan Gallery written in Python to manage your photos Installation

Asian Cat 24 Dec 18, 2022
PyPixelArt - A keyboard-centered pixel editor

PyPixelArt - A keyboard-centered pixel editor The idea behind PyPixelArt is uniting: a cmdpxl inspired pixel image editor applied to pixel art. vim 's

Douglas 18 Nov 14, 2022
A QR Code encode and decode python module

A QR Code encode and decode python module

Fayas Noushad 4 Feb 10, 2022
πŸ“· Python package and CLI utility to create photo mosaics.

πŸ“· Python package and CLI utility to create photo mosaics.

Loic Coyle 7 Oct 29, 2022