Skip to content

Esta é uma super classe super simples para criação de miniaturas. Sem fru-fru, apenas o que realmente é útil em um sistema/website

Notifications You must be signed in to change notification settings

israel-nogueira/sweet-thumb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Instalação | Exemplos de Uso | Conversão | Print no browser | Thumb Redondo
Paleta de Cores | Cor predominante | Placeholder | Placeholder com Blur | Add Textos | Mesclando imagens | uma imagens |

Esta é uma super classe super simples para criação de miniaturas. Sem fru-fru, apenas o que realmente é útil em um sistema/website.

Instalação

Instale via composer.

    composer require israel-nogueira/sweet-thumb

EXEMPLOS DE USO

Crop simples de uma imagem

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;

    /* 
    |--------------------------------
    |  Parâmetros:
    |   @SOURCE => Caminho da imagem
    |   @SIZE = Array com Largura e Altura  (ex: [w,h] )
    |   @SUFIX => Será adicionado as medidas da imagem ao final do nome (ex: avatar-{w}-{h}-{q}.png)
    |   @CROP = Bolean, habilita o crope da imagem
    |   @RESIZE = Habilita se quer redimencionar a imagem
    |   @QUALIDADE = 1 - 100  
    |   @SHOW_BROSWER = Ao invés de salvar a imagem, retorna a imagem para o browser
    |--------------------------------
    */
    sweet::crop(
        $_IMG=null,
        $sufix=true,
        $size=[50,50],
        $crop=true,
        $resize=true,
        $showBrowser=false
    );


    /* 
    |--------------------------------
    |  EXEMPLO PRÁTICO
    |--------------------------------
    */
    $_IMAGEM = __DIR__.'/avatar.jpg';
    sweet::crop($_IMAGEM,[100,100],true,true,true,100);


?>

sweet::crop('avatar.png',[100,100,100],true,true);
Cropa a imagem no formato que você definir:

sweet::crop('avatar.png',[0,100,100],false,true);
Redimencionará a altura para 100px e a largura proporcional:

sweet::crop('avatar.png',[100,0,100],false,true);
Redimencionará a largura para 100px e a altura proporcional:

sweet::crop('avatar.png',[100,100,100],true,false);
Cropa a imagem no formato que você definir porém sem redimencionar a imagm:

CONVERSÃO DE ARQUIVOS

Conversão de tipos de imagem.
Comporta as exetensões: .jpg, .gif, .webp, .png.

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;


    /* 
    |--------------------------------
    |  CONVERTE PARA JPG
    |--------------------------------
    */
	sweet::img2jpg(__DIR__.'/avatar.png',100);
    /* 
    |--------------------------------
    |  CONVERTE PARA GIF
    |--------------------------------
    */
	sweet::img2gif(__DIR__.'/avatar.png',100);
    /* 
    |--------------------------------
    |  CONVERTE PARA WEBP
    |--------------------------------
    */
	sweet::img2webp(__DIR__.'/avatar.png',100);
    /* 
    |--------------------------------
    |  CONVERTE PARA PNG
    |--------------------------------
    */
	sweet::img2png(__DIR__.'/avatar.jpg',9);

?>

PRINT IMAGEM NO BROWSER

Simplesmente retorna uma imagem e printa no browser:

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;

    sweet::printBrowser(__DIR__.'/original.webp');

?>

THUMB REDONDO

Cropa e retorna uma thumb redonda

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;

    /* 
    |-------------------------------------------------------
    |  CONVERTE PARA GIF
    |  @PARAM 1: Path da imagem
    |  @PARAM 2: Tamanho da thumb
    |  @PARAM 3: true:Salva um arquivo local, false: retorna o objeto
    |--------------------------------------------------------
    */
	sweet::thumbRedondo(__DIR__.'/avatar.jpg', 180,true);

?>

Este exemplo resultará em:

LISTANDO PALETA DE CORES

Nos retorna as cores disponiveis em uma imagem;

ATENÇÃO! Essa função percorre cada pixel de uma imagem. Se a imagem for muito grande, pode travar o processamento Portanto, é viável para casos expecíficos ou imagens pequenas

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;
    
    /* 
    |-------------------------------------------------------
    |  CAPTURA PALETA DE CORES
    |--------------------------------------------------------
    */
    $paleta = sweet::getColor(__DIR__.'/avatar.jpg');

    /* 
    |-------------------------------------------------------
    |  ORDENA A PALETA DE CORES
    |--------------------------------------------------------
    */
    $Ordem  = sweet::sortByColor($paleta);



?>

Este exemplo resultará em algo parecido com isso:

    Array
    (
        [0] => Array
            (
                [0] => 000000
                ...
                [30] => 0c0404
                [31] => 0b0303
                [32] => 050000
                [36] => 090100
                [37] => 0f0500
                ...
                ...
                [6361] => 1f1106
                [6367] => 582f0e
                [6368] => 623512
            )
    )


COR PREDOMINANTE DE UMA IMAGEM

Nos retorna a cor principal de uma imagem;

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;
    
    /* 
    |-------------------------------------------------------
    |  COR PRINCIPAL
    |--------------------------------------------------------
    */
    $paleta = sweet::corPredominante(__DIR__.'/avatar.jpg');

?>

Este exemplo resultará em algo parecido com isso:

        Array
        (
            [0] => Array
                (
                    [0] => 80
                    [1] => 61
                    [2] => 58
                )

            [1] => rgb(80, 61, 58)
        )

PLACEHOLDER

Nos retorna a cor principal de uma imagem;

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;
    
    /* 
    |-------------------------------------------------------
    |  COR PRINCIPAL
    |--------------------------------------------------------
    */
    echo sweet::placeholderSVG([
            'SIZE'  =>'250x100',
            'TEXT'  =>'Olá mundo!',
            'BG'    =>'000000',
            'COLOR' =>'FFFFFF',
            'ID'    =>'demonstracao',
            'CLASS' =>'avatar',
            'FONTSIZE'=>30,
            'FONTFAMILY'=>__DIR__.'/fonte.ttf'
        ]);
    
    /* 
    |-------------------------------------------------------
    |  OU SE QUISER INSERIR EM UMA TAG DE IMAGEM
    |--------------------------------------------------------
    */
    $placeholder = sweet::placeholderBase64([
            'SIZE'  =>'250x100',
            'TEXT'  =>'Olá mundo!',
            'BG'    =>'000000',
            'COLOR' =>'FFFFFF',
            'ID'    =>'demonstracao',
            'CLASS' =>'avatar',
            'FONTSIZE'=>30,
            'FONTFAMILY'=>__DIR__.'/fonte.ttf'
        ]);
    
    echo ' <img src="'.$placeholder.'">';

?>

Que nos resultará em:

    <svg xmlns="http://www.w3.org/2000/svg" id="demonstracao" class="avatar" width="250" height="100" viewBox="0 0 250 100">
        <rect fill="#000000" width="100%" height="100%"></rect>
        <text fill="#FFFFFF" font-family="sans-serif" font-size="30" dy="0" font-weight="bold" x="50%" y="50%" text-anchor="middle" dominant-baseline="middle">
            Olá mundo!
        </text> 
    </svg>

    <img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJkZW1vbnN0cmFjYW8iIGNsYXNzPSJhdmF0YXIiIHdpZHRoPSIyNTAiIGhlaWdodD0iMTAwIiB2aWV3Qm94PSIwIDAgMjUwIDEwMCI+DQoJCQkJCQkJPHJlY3QgZmlsbD0iIzAwMDAwMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIvPg0KCQkJCQkJCTx0ZXh0IA0KCQkJCQkJCQlmaWxsPSIjRkZGRkZGIiANCgkJCQkJCQkJZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIA0KCQkJCQkJCQlmb250LXNpemU9IjMwIiANCgkJCQkJCQkJZHk9IjAiIA0KCQkJCQkJCQlmb250LXdlaWdodD0iYm9sZCIgDQoJCQkJCQkJCXg9IjUwJSIgDQoJCQkJCQkJCXk9IjUwJSIgDQoJCQkJCQkJCXRleHQtYW5jaG9yPSJtaWRkbGUiDQoJCQkJCQkJCWRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiDQoJCQkJCQkJPg0KCQkJCQkJCQlPbMOhIG11bmRvIQ0KCQkJCQkJCTwvdGV4dD4gDQoJCQkJCQk8L3N2Zz4=">

Que visualmente é ficaria assim:


PLACEHOLDER BLUR DE UMA IMAGEM

Aqui criamos uma imagem em BLUR para placeholder em SVG;
Será criado um arquivo SVG com o sufixo -lazy.svg Tambem um placeholder mais simples, com apenas a cor predominante com o sufixo -lazy.low.svg

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;
    
    /* 
    |-------------------------------------------------------
    |  CRIA BLUR IMAGE
    |--------------------------------------------------------
    */
   echo sweet::createLazyLoad(__DIR__.'/avatar.png')


?>

Que visualmente é ficaria assim:

ADD TEXTO POR CIMA DE UMA IMAGEM

Veja como é simples adicionar um texto sob uma imagem;

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;
    
    /* 
    |-------------------------------------------------------
    |  ADICIONA TEXTO
    |--------------------------------------------------------
    */
    sweet::addTexto([
						'ORIGINAL'	=>	__DIR__.'/bg.png',
						'FINAL'		=>	__DIR__.'/bg_texto.png',
						'FONT_SIZE'	=>	30,
						'TEXT_Y'	=>	'center';
						'TEXT_X'	=>	'center';
						'TEXTO'		=>	'PROMOÇÃO AGORA!';
						'FONTE'		=>	__DIR__.'/FONTE.ttf',
						'COR'		=>	'#FFFFFF'
					]);

?>

Que visualmente é ficaria assim:

MESCLANDO IMAGENS

Com essa função poderemos mesclar imagens programaticamente;

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;
    
    /* 
    |-------------------------------------------------------
    |  MESCLA O AVATAR 
    |--------------------------------------------------------
    */
	sweet::mesclarIMG(__DIR__.'/bg.png',__DIR__.'/mulher.png',22,22,__DIR__.'/bg1.png');

    /* 
    |-------------------------------------------------------
    |  MESCLA O ICONE DO SONIC 
    |--------------------------------------------------------
    */
	sweet::mesclarIMG(__DIR__.'/bg1.png',__DIR__.'/sonic.png',230,100,__DIR__.'/banner.png');

?>

Que visualmente é ficaria assim:

PROCESSA UMA IMAGEM

Podemos utilizar essa função para gerar vários formatos de uma só imagem;

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;

	/*
	|-----------------------------------------------------
	|	FAZ O PROCESSO COMPLETO
	|-----------------------------------------------------
	|
	|	@_ARQUIVO:  string:PathFile | array[PathFile,HashName]
	|	@_SIZES:    [w|h,[w,h],[w,h],[w,h,q]]  
	|	@_ROOT_SIZE: tamanho maximo do original
	|
	|-----------------------------------------------------
	*/

	sweet::processaImagem([__DIR__.'/imagens/avatar.png','nova-imagem'],[50,[100,150,100],[200,250,100],300],1300);

?>

Que visualmente é ficaria assim:

Caso não queira dar um bnome pra imagem, será gerado uma HASH randômica;

<?php
    include "vendor\autoload.php";
	use IsraelNogueira\SweetThumb\sweet;

	/*
	|-----------------------------------------------------
	|	FAZ O PROCESSO COMPLETO
	|-----------------------------------------------------
	|
	|	@_ARQUIVO:  string:PathFile | array[PathFile,HashName]
	|	@_SIZES:    [w|h,[w,h],[w,h],[w,h,q]]  
	|	@_ROOT_SIZE: tamanho maximo do original
	|
	|-----------------------------------------------------
	*/

	sweet::processaImagem(__DIR__.'/avatar.png',[50,[200,100,100],[200,100,100],300],1300);

?>

Que visualmente é ficaria assim:

About

Esta é uma super classe super simples para criação de miniaturas. Sem fru-fru, apenas o que realmente é útil em um sistema/website

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages