Pixelizer is an efficient image pixelizer written in go

Overview

Pixelizer

Pixelizer is an image pixelizer written in go. It allows very simple and intuitive CLI pixelization.

Installation

To install Pixelizer, you need to :

  • Install Go here
  • Run this command :
$ go get -u github.com/eleby/pixelizer/...
  • Optional - Install the package to use a cmd shortcut : First navigate to your go sources repository, then :
$ cd github.com/eleby/pixelizer/main

Then build the package (No install, since go install doesn't allow renaming) :

$ go build -o pixelize

And move it to your $GOBIN or $GOPATH/bin :

$ sudo mv pixelize [your $GOBIN or $GOPATH/bin]

Usage

Pixelizer is meant to be simple to use, error-free and intuitive. To be reminded of the usage, you can sure read this readme, but you can also open your terminal and use :

$ pixelize [OR] pixelize help [OR] pixelize man

This will print the manual.

Here is how it works :

/!\ The pixelizer needs to be used directly in the folder containing the image. This known limitation may change in the future. /!\

  1. Print the manual :
$ pixelize [OR] pixelize help [OR] pixelize man
  1. Pixelize an image :
$ pixelize [imageName] [X] [Y] [Z]
  • imageName = name of the image, in the current directory, to pixelize.
  • X = Width of each group of pixels to fuse (Ex : 5 will fuse every group of 5*5 pixels from the image)
  • Y = Number of results, with increasing X at each result (Ex : 5 3 will print 3 results while fusing groups of 5*5 pixels for the first result, 6*6 for the second, etc)
  • Z = Change to the step increase between each result (Ex : 5 3 5 will print 3 results while fusing groups of 5*5 pixels for the first result, 10*10 for the second, etc)
  1. Clear the folder of the result files :
$ pixelize clear
  1. Redo the last pixelization :
$ pixelize redo
Issues
  • Basic installation errors?

    Basic installation errors?

    I thought this looked super cool, and wanted to give a spin! I'm planning on editing any files, just wanted to have fun and see what the program could do. I've never used Go, and following the instructions in the README leaves me with a few errors that I suspect are just related to me not knowing Go. However, some basic digging and comparison against the instructions has left me a bit confused on what I'm supposed to do in order to get it working properly.

    Pop!_OS 20.10 (Ubuntu-based) Go 1.16.1 linux/amd64


    go get retrieves nothing, with no errors. So I've cloned the files to ~/Downloads/pixelizer.

    [email protected] ~/Downloads$ ll
    ./
    ../
    pixelizer/
    

    When building the repository...

    [email protected] ~/Downloads/pixelizer/main$ go build -o pixelize
    go: cannot find main module, but found .git/config in /home/lee/Downloads/pixelizer
    	to create a module there, run:
    	cd .. && go mod init
    

    Alright, I'll be a good boy and do as it says.

    [email protected]:~/Downloads/pixelizer/main$ cd .. && go mod init
    go: cannot determine module path for source directory /home/lee/Downloads/pixelizer (outside GOPATH, module path must be specified)
    

    Knowing my unfamiliarity with Go, it's probably something simple. Am I missing something?

    Thank you for any and all help!

    opened by bananabrann 8
  • The pixelizer does only work for files in the current directory

    The pixelizer does only work for files in the current directory

    The pixelizer has to take into account a path included in the image name parameter, so it can work everywhere. Currently it only takes an image, and displays results, in the current directory, which is a bit limiting. I will work on that.

    opened by eleby 1
  • Refactor and CI

    Refactor and CI

    With this PR I add the following enhancements:

    • Follow Go community project layout https://github.com/golang-standards/project-layout
    • CI/CD support for automation code checks and delivery release artifacts (executables for all platforms that could be downloaded)
    • Add makefile automation
    • Helper scripts for compiling, linting, and releasing the application

    PS more refactor in next PRs

    opened by obalunenko 4
Releases(2.0)
  • 2.0(Mar 7, 2021)

    Paths are now correctly managed. A save directory is now added in the user's home directory. True pixel-sized results are now an option. Loggers have been added as an option.

    Source code(tar.gz)
    Source code(zip)
  • 1.2(Mar 1, 2021)

    New features to output a gif of all the transformation process (All the results are saved into the gif file), with the possibility to change the animation (normal, reverse, or full)

    Source code(tar.gz)
    Source code(zip)
  • 1.1(Mar 1, 2021)

  • 1.0(Feb 27, 2021)

    Initial state of the program, with :

    • man, help displaying the manual
    • options for minimal pixelization, number of results, pixelization increase between each result
    • automatic save, clear and redo features
    Source code(tar.gz)
    Source code(zip)
Owner
Rewan_
Rewan_
darkroom - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency.

Darkroom - Yet Another Image Proxy Introduction Darkroom combines the storage backend and the image processor and acts as an Image Proxy on your image

Gojek 194 Aug 3, 2022
Easily customizable Social image (or Open graph image) generator

fancycard Easily customizable Social image (or Open graph image) generator Built with Go, Gin, GoQuery and Chromedp Build & Run Simply, Clone this rep

Youngbin Han 4 Jan 14, 2022
An API which allows you to upload an image and responds with the same image, stripped of EXIF data

strip-metadata This is an API which allows you to upload an image and responds with the same image, stripped of EXIF data. How to run You need to have

Cristina Simionescu 0 Nov 25, 2021
Imgpreview - Tiny image previews for HTML while the original image is loading

imgpreview This is a Go program that generates tiny blurry previews for images t

Dmitry Chestnykh 8 May 22, 2022
Storage and image processing server written in Go

Mort An S3-compatible image processing server written in Go. Still in active development. Features HTTP server Resize, Rotate, SmartCrop Convert (JPEG

Marcin Kaciuba 460 Jul 19, 2022
An image resizing server written in Go

picfit picfit is a reusable Go server to manipulate images (resize, thumbnail, etc.). It will act as a proxy on your storage engine and will be served

Florent Messa 1.7k Aug 9, 2022
ColorX is a library to determine the most prominent color in an image written in golang

ColorX is a library to determine the most prominent color in an image. ColorX doesn't use any sort of complex algorithms to calculate the prominent color, it simply loops over the image pixels and returns the color that occurs the most.

Hesham Abourgheba 1 Nov 11, 2021
Pbm - Package ppm implements a Portable Bit Map (PBM) image decoder and encoder written in Go

Package pbm import "github.com/slashformotion/pbm" Package pbm implements a Portable Bit Map (PBM) image decoder and encoder. The supported image col

slashformotion 0 Jan 5, 2022
Efficient moving window for high-speed data processing.

Moving Window Data Structure Copyright (c) 2012. Jake Brukhman. ([email protected]). All rights reserved. See the LICENSE file for BSD-style license. I

Jake Brukhman 31 Jun 30, 2021
A simple, efficient spring animation library for smooth, natural motionšŸŽ¼

Harmonica A simple, efficient spring animation library for smooth, natural motion. It even works well on the command line.

Charm 547 Aug 6, 2022
Image processing algorithms in pure Go

bild A collection of parallel image processing algorithms in pure Go. The aim of this project is simplicity in use and development over absolute high

Anthony N. Simon 3.6k Jul 29, 2022
Go package for fast high-level image processing powered by libvips C library

bimg Small Go package for fast high-level image processing using libvips via C bindings, providing a simple programmatic API. bimg was designed to be

Tom 2k Aug 2, 2022
Image processing library and rendering toolkit for Go.

blend Image processing library and rendering toolkit for Go. (WIP) Installation: This library is compatible with Go1. go get github.com/phrozen/blend

Guillermo Estrada 59 Dec 24, 2021
Decode embedded EXIF meta data from image files.

goexif Provides decoding of basic exif and tiff encoded data. Still in alpha - no guarantees. Suggestions and pull requests are welcome. Functionality

Robert Carlsen 525 Jul 28, 2022
A lightning fast image processing and resizing library for Go

govips A lightning fast image processing and resizing library for Go This package wraps the core functionality of libvips image processing library by

David Byttow 731 Aug 8, 2022
Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing

imaginary Fast HTTP microservice written in Go for high-level image processing backed by bimg and libvips. imaginary can be used as private or public

Tom 4.5k Aug 3, 2022
Imaging is a simple image processing package for Go

Imaging Package imaging provides basic image processing functions (resize, rotate, crop, brightness/contrast adjustments, etc.). All the image process

Grigory Dryapak 4.3k Aug 7, 2022
Pure golang image resizing

This package is no longer being updated! Please look for alternatives if that bothers you. Resize Image resizing for the Go programming language with

Jan Schlicht 2.9k Aug 6, 2022
smartcrop finds good image crops for arbitrary crop sizes

smartcrop smartcrop finds good image crops for arbitrary sizes. It is a pure Go implementation, based on Jonas Wagner's smartcrop.js Image: https://ww

Christian Muehlhaeuser 1.7k Aug 3, 2022