Skip to content

📗 -> 📘 Change color of png keep alpha channel in php!

Notifications You must be signed in to change notification settings

gabrieldarezzo/colorizzar

Repository files navigation

Build Status Version Total Downloads

Colorizzar

Change color of an image without lose alpha channel (alpha layer)
Altere a cor da sua imagem sem perder a camada alpha (camada de transparência)

You can change the color of this car (Or any imagem you want), example:

Change color from red color pick by Hexadecimal to blue:

<?php
require_once 'vendor/autoload.php';

use Colorizzar\ChangeColor;

$changeColor = new ChangeColor('red_car.png');

//From Red Hexadecimal
$changeColor->setFromHex('#FF1F28');

// Will create 'blue.png' in new_cars/ folder
$changeColor->colorizeByNameColor('Blue', 'new_cars/');

Or create by specific color name, example from red to blue:

<?php

require_once 'vendor/autoload.php';

use Colorizzar\ChangeColor;

$changeColor = new ChangeColor('red_car.png');

//From Red Hexadecimal
$changeColor->setFromHex('#FF1F28');
$changeColor->setToHex('#1F75FE');

// Will create 'blue.png' in new_cars/ folder
$changeColor->colorizeKeepAplhaChannnel('new_cars/blue.png');

Result of colorizeKeepAplhaChannnel()/colorizeByNameColor() :

Scheme


Create all 135 COLORS with colorizeToAllColors() !

Example of code:

<?php
....

$changeColor = new ChangeColor('red_car.png');
$changeColor->setFromHex('#FF1F28');
$changeColor->colorizeToAllColors('cars/');

Scheme

TODO-LIST:

  • FIX (ChangeColorTests.php:testColorizeLoopColors())
  • FIX require_once() on tests, (Maybe a custom vendor.php for tests)
  • Create a plugin in JS consume colorizzar and show in realtime result
  • Improve tests (check in image created has new rgb expected)
  • (almost done -> ColorizzarWebService.php) Create a WebService recive a file and manipulate methods to create dynamic
  • (done) IMPROVE TODOLIST and update readme with new methods (hexadecimal)
  • (done) Add DockBlock in all methods
  • (done) Improve ChangeColor.php SOLID
  • testExtensionIsFilePng()

ColorizzarWebService.php will be:

  • Hash create by upload image
  • create a folder with same name of hash
  • result a JSON with all urls created

JS-Plugin will consume ColorizzarWebService.php and show final result to user like a magic!

Helpfull links

How Contribute

Read:
https://github.com/gabrieldarezzo/colorizzar/blob/master/CONTRIBUTING.md

Thanks to: