Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jbirms/ok-zoomer
A Go program that takes an image, uses pigo to detect a face, and creates a gif that zooms in on the face
https://github.com/jbirms/ok-zoomer
Last synced: 13 days ago
JSON representation
A Go program that takes an image, uses pigo to detect a face, and creates a gif that zooms in on the face
- Host: GitHub
- URL: https://github.com/jbirms/ok-zoomer
- Owner: jbirms
- License: mit
- Created: 2019-11-15T00:28:01.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-01-03T02:19:01.000Z (almost 5 years ago)
- Last Synced: 2024-06-20T03:55:30.049Z (5 months ago)
- Language: Go
- Homepage:
- Size: 24.9 MB
- Stars: 243
- Watchers: 3
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ok-zoomer
Every GIF is a gift.![](assets/smooth_face_zoom.gif)
## How it works
* face detection with [esimov/pigo](https://github.com/esimov/pigo)
* color quantization / dithering with [esimov/colorquant](https://github.com/esimov/colorquant)
* image resizing with [nfnt/resize](https://github.com/nfnt/resize)
* text message API with [twilio](https://www.twilio.com/)
* hosted on an [AWS EC2 instance](https://aws.amazon.com/ec2/)
* served with [nginx](https://www.nginx.com/)
* SSL with [let's encrypt](https://letsencrypt.org/)
![](assets/flowchart.png)## TODO
* write tests
* port to Go modules
* allow text message-passed parameters like number of frames, delay, and number of faces to detect
* put it on an AWS Lambda to make it more scalable, then release the twilio number into the wild
*
* add the possibility of rate limiting by using redis to store which gifs were made by which phone numbers, whitelist my own number
* clean up this code, it was my first Go project so the code is pretty sloppy
* less manual deployment and check in nginx + supervisor conf in this repo