Jump to content


Photo

Colorir Imagem


  • Faça o login para participar
15 replies to this topic

#1 Igor.

Igor.

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 18/06/2008, 09:38

Gente, como eu faço pra o php trocar a cor da imagem?
exemplo: eu tenho uma imagem branca à esquerda, e quero que ela fique como a da direita.
imagem:
Posted Image

Aguardo respostas...

#2 MarcoviZ

MarcoviZ

    ubuntu for human being

  • Usuários
  • 1137 posts
  • Sexo:Não informado

Posted 18/06/2008, 09:54

putz cara, acho meio difícil...
um jeito "Possível", seria vc deixar o centro transparente, e fora branco... ai vc poe uma cor por baixo...
mais colorir mesmo eu acho que não tem como...

mais espera que já já alguns metres te ajudam :P

té+
[]'s

#3 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 18/06/2008, 11:57

Pega o tamanho da imagem, faça um loop que varra a imagem inteira pixel a pixe, peque a cor do pixel com a função imagecolorat compare para saber se eh a cor original desejada, se sim mude para a nova cor com a função imagesetpixel.
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 18/06/2008, 14:10

Pega o tamanho da imagem, faça um loop que varra a imagem inteira pixel a pixe, peque a cor do pixel com a função imagecolorat compare para saber se eh a cor original desejada, se sim mude para a nova cor com a função imagesetpixel.

Lembrando que, se a imagem teve a aplicação de qualquer filtro anti-alias, isso deixará de funcionar como o esperado. Mas aí, essa parada é interessante! Acredito que seja possível, mesmo que com anti-alias aplicado, se aproximar bem do resultado final. :ponder:

Pô, isso é tema pra desafio! :P

Isso me aguçou as idéias... :rolleyes:

[]’s :DAté mais

#5 Igor.

Igor.

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 18/06/2008, 14:44

Poderiam me dar um exemplo?

#6 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 18/06/2008, 15:58

Pega o tamanho da imagem, faça um loop que varra a imagem inteira pixel a pixe, peque a cor do pixel com a função imagecolorat compare para saber se eh a cor original desejada, se sim mude para a nova cor com a função imagesetpixel.

Lembrando que, se a imagem teve a aplicação de qualquer filtro anti-alias, isso deixará de funcionar como o esperado. Mas aí, essa parada é interessante! Acredito que seja possível, mesmo que com anti-alias aplicado, se aproximar bem do resultado final. :ponder:

Pô, isso é tema pra desafio! :P

Isso me aguçou as idéias... :rolleyes:

[]’s :D

Desafio seria bom, por que, e o processador? Onde ele iria cansar um pouco para fazer isso em uma imagem mais complexa? '-'
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#7 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 18/06/2008, 16:21

@Paulo Ricardo
Realmente. Existem tais variáveis. E é um bom desafio mesmo. Bora para as discussões na Administração.

@lwirkk
Isso depende muito de algoritmos. Talvez um agoritmo bem trabalhado.
As vezes até interação com algum módulo compilado.

@Igor
Exemplo do que? Você não entendeu o uso das funções?
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#8 Igor.

Igor.

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 18/06/2008, 20:39

@fly2k

Pega o tamanho da imagem, faça um loop que varra a imagem inteira pixel a pixe, peque a cor do pixel com a função imagecolorat compare para saber se eh a cor original desejada, se sim mude para a nova cor com a função imagesetpixel.

Não entendi uma palavra 8D

#9 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 19/06/2008, 00:01

@lwirkk
Isso depende muito de algoritmos. Talvez um agoritmo bem trabalhado.
As vezes até interação com algum módulo compilado.


Tadinho do apache aguentando a carga de processamento disto, imagens pequenas vai (digamos menos que 5000 iterações). Acho que algo mais C based se sairia melhor, dae chamava via exec(), etc.

Se bem que daria uma carga das boa no apache.

Acho melhor criar um algoritmo C based, jogar dae as imagens numa fila de processamento. ;D

O desafio eu dou meu apoio, mas que façam com imagens de 50x50 pixels :P

[]'s

Edição feita por: savior, 19/06/2008, 00:11.

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#10 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 19/06/2008, 15:30

Seria mais fácil encontrar o contorno da imagem e então com contas aritméticas apenas ir preenchendo do início de um contorno, até o limite do outro. Percorrer todos os pixels seria muito lento.

Se bem que pra achar o contorno da imagem também teria que percorrer os pixels...

#11 Igor.

Igor.

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 22/06/2008, 21:38

Olha eu encontrei um script que pega a imagem branca e coloca certa cor nela.
Só não consegui identificar onde fica..
aqui vai..
<?php
/*===================================================+
|| # HoloCMS - Website and Content Management System
|+===================================================+
|| # Copyright © 2008 Meth0d. All rights reserved.
|| # http://www.meth0d.org
|+===================================================+
|| # HoloCMS is provided "as is" and comes without
|| # warrenty of any kind. HoloCMS is free software!
|+===================================================*/

/** HOLO GROUP BADGE IMAGER
* @author	Jaym/Kreechin
* @desc		 Dynamicly generate group badge images
* @usage		<img src='./habbo-imager/badge.php?badge='>
*/

// You may not use, edit, or redistribute this file or any part(s) of it in any
// way, shape, method or format outside HoloCMS without explicit prior
// permission to do so from jaym/kreechin. This file may only be used for
// reference unless otherwise stated by the author.

header("Content-type: image/gif");
$im = imagecreatefromgif("badges/base/base.gif");
$badgedata = $_GET['badge'];

if(empty($badgedata)){ exit; }

$letters = array("b", "X");
$badgedata = str_replace($letters, "", $badgedata);
$layer = explode("s",$badgedata);
$sourcefile_id = imageCreateFromgif("badges/base/base.gif");

$str = "$layer[0]";
$arr = str_split($str, 2);
if ("$layer[0]" == "") {
$lay = "badges/templates/none.gif";
$lay = imagecreatefromgif($lay);
	imagecopy($im, $lay, 0, 0, 0, 0, 0, 0);
} else {
$colcode = $arr[1];
if ("$colcode" == "01") {
$col = '0xff0xd60x01';
}
elseif ("$colcode" == "02") {
$col = '0xee0x760x00';
}
elseif ("$colcode" == "03") {
$col = '0x840xde0x00';
}
elseif ("$colcode" == "04") {
$col = '0x580x9a0x00';
}
elseif ("$colcode" == "05") {
$col = '0x500xc10xfb';
}
elseif ("$colcode" == "06") {
$col = '0x000x6f0xcf';
}
elseif ("$colcode" == "07") {
$col = '0xff0x980xe3';
}
elseif ("$colcode" == "08") {
$col = '0xf30x340xbf';
}
elseif ("$colcode" == "09") {
$col = '0xff0x2d0x2d';
}
elseif ("$colcode" == "10") {
$col = '0xaf0x0a0x0a';
}
elseif ("$colcode" == "11") {
$col = '0xff0xff0xff';
}
elseif ("$colcode" == "12") {
$col = '0xc00xc00xc0';
}
elseif ("$colcode" == "13") {
$col = '0x370x370x37';
}
elseif ("$colcode" == "14") {
$col = '0xfb0xe70xac';
}
elseif ("$colcode" == "15") {
$col = '0x970x760x41';
}
elseif ("$colcode" == "16") {
$col = '0xc20xea0xff';
}
elseif ("$colcode" == "17") {
$col = '0xff0xf10x65';
}
elseif ("$colcode" == "18") {
$col = '0xaa0xff0x7d';
}

$colour = str_split($col, 4);
$hex1 = $colour[0];
$hex2 = $colour[1];
$hex3 = $colour[2];

function image_colorize(&$img,$rgb) {
  imageTrueColorToPalette($img,true,256);
  $numColors = imageColorsTotal($img);
  for ($x = 0; $x < $numColors; $x++) {
	list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));
	$grayscale = ($r + $g + $b) / 3 / 0xff;
	imageColorSet($img,$x,
	  $grayscale * $rgb[0],
	  $grayscale * $rgb[1],
	  $grayscale * $rgb[2]);
}
}
$insertfile_id = imageCreateFromgif("badges/base/$arr[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( $sourcefile_width / 2 ) - ( $insertfile_width / 2 );
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
$image = getimagesize ("badges/base/$arr[0].gif");
$h = $image[0];
$w = $image[1];
$color = array($hex1,$hex2,$hex3);
$lay = "badges/base/$arr[0].gif";
$img = imageCreateFromgif($lay);
image_colorize($img, $color);
if(file_exists("badges/base/$arr[0]_$arr[0].gif")){
$olay = imagecreatefromgif("badges/base/$arr[0]_$arr[0].gif");
imagecopymerge($img, $olay, 0, 0, 0, 0, $h, $w, 100);
	 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	} else {
		 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	}
	}

$str1 = "$layer[1]";
$arr1 = str_split($str1, 2);
if ("$layer[1]" == "") {
$lay1 = "badges/templates/none.gif";
$lay1 = imagecreatefromgif($lay1);
	imagecopy($im, $lay1, 0, 0, 0, 0, 0, 0);
} else {

$image = getimagesize ("badges/templates/$arr1[0].gif");
$h = $image[0];
$w = $image[1];
$pos = $arr1[2];

if ("$pos" == "0") {
$p = "0";
$pp = "0";
}
elseif ("$pos" == "1") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = 0;
}
elseif ("$pos" == "2") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = 0;
}
elseif ("$pos" == "3") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "4") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( $sourcefile_width / 2 ) - ( $insertfile_width / 2 );
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "5") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "6") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "7") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "8") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr1[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = $sourcefile_height - $insertfile_height;
}
$colcode = $arr1[1];
if ("$colcode" == "01") {
$col = '0xff0xd60x01';
}
elseif ("$colcode" == "02") {
$col = '0xee0x760x00';
}
elseif ("$colcode" == "03") {
$col = '0x840xde0x00';
}
elseif ("$colcode" == "04") {
$col = '0x580x9a0x00';
}
elseif ("$colcode" == "05") {
$col = '0x500xc10xfb';
}
elseif ("$colcode" == "06") {
$col = '0x000x6f0xcf';
}
elseif ("$colcode" == "07") {
$col = '0xff0x980xe3';
}
elseif ("$colcode" == "08") {
$col = '0xf30x340xbf';
}
elseif ("$colcode" == "09") {
$col = '0xff0x2d0x2d';
}
elseif ("$colcode" == "10") {
$col = '0xaf0x0a0x0a';
}
elseif ("$colcode" == "11") {
$col = '0xff0xff0xff';
}
elseif ("$colcode" == "12") {
$col = '0xc00xc00xc0';
}
elseif ("$colcode" == "13") {
$col = '0x370x370x37';
}
elseif ("$colcode" == "14") {
$col = '0xfb0xe70xac';
}
elseif ("$colcode" == "15") {
$col = '0x970x760x41';
}
elseif ("$colcode" == "16") {
$col = '0xc20xea0xff';
}
elseif ("$colcode" == "17") {
$col = '0xff0xf10x65';
}
elseif ("$colcode" == "18") {
$col = '0xaa0xff0x7d';
}

$colour = str_split($col, 4);
$hex1 = $colour[0];
$hex2 = $colour[1];
$hex3 = $colour[2];

function image_colorize1(&$img,$rgb) {
  imageTrueColorToPalette($img,true,256);
  $numColors = imageColorsTotal($img);
  for ($x = 0; $x < $numColors; $x++) {
	list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));
	$grayscale = ($r + $g + $b) / 3 / 0xff;
	imageColorSet($img,$x,
	  $grayscale * $rgb[0],
	  $grayscale * $rgb[1],
	  $grayscale * $rgb[2]);
}
}

$color = array($hex1,$hex2,$hex3);
$lay1 = "badges/templates/$arr1[0].gif";
$img = imageCreateFromgif($lay1);
image_colorize1($img,$color);
if(file_exists("badges/templates/$arr1[0]_$arr1[0].gif")){
$olay = imagecreatefromgif("badges/templates/$arr1[0]_$arr1[0].gif");
imagecopymerge($img, $olay, 0, 0, 0, 0, $h, $w, 100);
	 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	} else {
		 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	}
	}



$str2 = "$layer[2]";
$arr2 = str_split($str2, 2);
if ("$layer[2]" == "") {
$lay2 = "badges/templates/none.gif";
$lay2 = imagecreatefromgif($lay2);
	imagecopy($im, $lay2, 0, 0, 0, 0, 0, 0);
} else {
$image = getimagesize ("badges/templates/$arr2[0].gif");
$h = $image[0];
$w = $image[1];
$pos = $arr2[2];
if ("$pos" == "0") {
$p = "0";
$pp = "0";
}
elseif ("$pos" == "1") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = 0;
}
elseif ("$pos" == "2") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = 0;
}
elseif ("$pos" == "3") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "4") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( $sourcefile_width / 2 ) - ( $insertfile_width / 2 );
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "5") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "6") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "7") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "8") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr2[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = $sourcefile_height - $insertfile_height;
}
$colcode = $arr2[1];
if ("$colcode" == "01") {
$col = '0xff0xd60x01';
}
elseif ("$colcode" == "02") {
$col = '0xee0x760x00';
}
elseif ("$colcode" == "03") {
$col = '0x840xde0x00';
}
elseif ("$colcode" == "04") {
$col = '0x580x9a0x00';
}
elseif ("$colcode" == "05") {
$col = '0x500xc10xfb';
}
elseif ("$colcode" == "06") {
$col = '0x000x6f0xcf';
}
elseif ("$colcode" == "07") {
$col = '0xff0x980xe3';
}
elseif ("$colcode" == "08") {
$col = '0xf30x340xbf';
}
elseif ("$colcode" == "09") {
$col = '0xff0x2d0x2d';
}
elseif ("$colcode" == "10") {
$col = '0xaf0x0a0x0a';
}
elseif ("$colcode" == "11") {
$col = '0xff0xff0xff';
}
elseif ("$colcode" == "12") {
$col = '0xc00xc00xc0';
}
elseif ("$colcode" == "13") {
$col = '0x370x370x37';
}
elseif ("$colcode" == "14") {
$col = '0xfb0xe70xac';
}
elseif ("$colcode" == "15") {
$col = '0x970x760x41';
}
elseif ("$colcode" == "16") {
$col = '0xc20xea0xff';
}
elseif ("$colcode" == "17") {
$col = '0xff0xf10x65';
}
elseif ("$colcode" == "18") {
$col = '0xaa0xff0x7d';
}

$colour = str_split($col, 4);
$hex1 = $colour[0];
$hex2 = $colour[1];
$hex3 = $colour[2];

function image_colorize2(&$img,$rgb) {
  imageTrueColorToPalette($img,true,256);
  $numColors = imageColorsTotal($img);
  for ($x = 0; $x < $numColors; $x++) {
	list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));
	$grayscale = ($r + $g + $b) / 3 / 0xff;
	imageColorSet($img,$x,
	  $grayscale * $rgb[0],
	  $grayscale * $rgb[1],
	  $grayscale * $rgb[2]);
}
}
$color = array($hex1,$hex2,$hex3);
$lay2 = "badges/templates/$arr2[0].gif";
$img = imageCreateFromgif($lay2);
image_colorize2($img,$color);
if(file_exists("badges/templates/$arr2[0]_$arr2[0].gif")){
$olay = imagecreatefromgif("badges/templates/$arr2[0]_$arr2[0].gif");
imagecopymerge($img, $olay, 0, 0, 0, 0, $h, $w, 100);
	 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	} else {
		 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	}
	}


$str3 = "$layer[3]";
$arr3 = str_split($str3, 2);
if ("$layer[3]" == "") {
$lay3 = "badges/templates/none.gif";
$lay3 = imagecreatefromgif($lay3);
	imagecopy($im, $lay3, 0, 0, 0, 0, 0, 0);
} else {
$image = getimagesize ("badges/templates/$arr3[0].gif");
$h = $image[0];
$w = $image[1];
$pos = $arr3[2];
if ("$pos" == "0") {
$p = "0";
$pp = "0";
}
elseif ("$pos" == "1") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = 0;
}
elseif ("$pos" == "2") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = 0;
}
elseif ("$pos" == "3") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "4") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( $sourcefile_width / 2 ) - ( $insertfile_width / 2 );
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "5") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "6") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "7") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "8") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr3[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = $sourcefile_height - $insertfile_height;
}
$colcode = $arr3[1];
if ("$colcode" == "01") {
$col = '0xff0xd60x01';
}
elseif ("$colcode" == "02") {
$col = '0xee0x760x00';
}
elseif ("$colcode" == "03") {
$col = '0x840xde0x00';
}
elseif ("$colcode" == "04") {
$col = '0x580x9a0x00';
}
elseif ("$colcode" == "05") {
$col = '0x500xc10xfb';
}
elseif ("$colcode" == "06") {
$col = '0x000x6f0xcf';
}
elseif ("$colcode" == "07") {
$col = '0xff0x980xe3';
}
elseif ("$colcode" == "08") {
$col = '0xf30x340xbf';
}
elseif ("$colcode" == "09") {
$col = '0xff0x2d0x2d';
}
elseif ("$colcode" == "10") {
$col = '0xaf0x0a0x0a';
}
elseif ("$colcode" == "11") {
$col = '0xff0xff0xff';
}
elseif ("$colcode" == "12") {
$col = '0xc00xc00xc0';
}
elseif ("$colcode" == "13") {
$col = '0x370x370x37';
}
elseif ("$colcode" == "14") {
$col = '0xfb0xe70xac';
}
elseif ("$colcode" == "15") {
$col = '0x970x760x41';
}
elseif ("$colcode" == "16") {
$col = '0xc20xea0xff';
}
elseif ("$colcode" == "17") {
$col = '0xff0xf10x65';
}
elseif ("$colcode" == "18") {
$col = '0xaa0xff0x7d';
}

$colour = str_split($col, 4);
$hex1 = $colour[0];
$hex2 = $colour[1];
$hex3 = $colour[2];

function image_colorize3(&$img,$rgb) {
  imageTrueColorToPalette($img,true,256);
  $numColors = imageColorsTotal($img);
  for ($x = 0; $x < $numColors; $x++) {
	list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));
	$grayscale = ($r + $g + $b) / 3 / 0xff;
	imageColorSet($img,$x,
	  $grayscale * $rgb[0],
	  $grayscale * $rgb[1],
	  $grayscale * $rgb[2]);
}
}
$color = array($hex1,$hex2,$hex3);
$lay3 = "badges/templates/$arr3[0].gif";
$img = imageCreateFromgif($lay3);
image_colorize3($img,$color);
if(file_exists("badges/templates/$arr3[0]_$arr3[0].gif")){
$olay = imagecreatefromgif("badges/templates/$arr3[0]_$arr3[0].gif");
imagecopymerge($img, $olay, 0, 0, 0, 0, $h, $w, 100);
	 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	} else {
		 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	}
	}
	
	
	
$str4 = "$layer[4]";
$arr4 = str_split($str4, 2);
if ("$layer[4]" == "") {
$lay4 = "badges/templates/none.gif";
$lay4 = imagecreatefromgif($lay4);
	imagecopy($im, $lay4, 0, 0, 0, 0, 0, 0);
} else {
$image = getimagesize ("badges/templates/$arr4[0].gif");
$h = $image[0];
$w = $image[1];
$pos = $arr4[2];
if ("$pos" == "0") {
$p = "0";
$pp = "0";
}
elseif ("$pos" == "1") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = 0;
}
elseif ("$pos" == "2") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = 0;
}
elseif ("$pos" == "3") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "4") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( $sourcefile_width / 2 ) - ( $insertfile_width / 2 );
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "5") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = ( $sourcefile_height / 2 ) - ( $insertfile_height / 2 );
}
elseif ("$pos" == "6") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = 0;
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "7") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = ( ( $sourcefile_width - $insertfile_width ) / 2 );
$pp = $sourcefile_height - $insertfile_height;
}
elseif ("$pos" == "8") {
$insertfile_id = imageCreateFromgif("badges/templates/$arr4[0].gif");
$sourcefile_width = imageSX($sourcefile_id);
$insertfile_width = imageSX($insertfile_id);
$sourcefile_height = imageSY($sourcefile_id);
$insertfile_height = imageSY($insertfile_id);
$p = $sourcefile_width - $insertfile_width;
$pp = $sourcefile_height - $insertfile_height;
}
$colcode = $arr4[1];
if ("$colcode" == "01") {
$col = '0xff0xd60x01';
}
elseif ("$colcode" == "02") {
$col = '0xee0x760x00';
}
elseif ("$colcode" == "03") {
$col = '0x840xde0x00';
}
elseif ("$colcode" == "04") {
$col = '0x580x9a0x00';
}
elseif ("$colcode" == "05") {
$col = '0x500xc10xfb';
}
elseif ("$colcode" == "06") {
$col = '0x000x6f0xcf';
}
elseif ("$colcode" == "07") {
$col = '0xff0x980xe3';
}
elseif ("$colcode" == "08") {
$col = '0xf30x340xbf';
}
elseif ("$colcode" == "09") {
$col = '0xff0x2d0x2d';
}
elseif ("$colcode" == "10") {
$col = '0xaf0x0a0x0a';
}
elseif ("$colcode" == "11") {
$col = '0xff0xff0xff';
}
elseif ("$colcode" == "12") {
$col = '0xc00xc00xc0';
}
elseif ("$colcode" == "13") {
$col = '0x370x370x37';
}
elseif ("$colcode" == "14") {
$col = '0xfb0xe70xac';
}
elseif ("$colcode" == "15") {
$col = '0x970x760x41';
}
elseif ("$colcode" == "16") {
$col = '0xc20xea0xff';
}
elseif ("$colcode" == "17") {
$col = '0xff0xf10x65';
}
elseif ("$colcode" == "18") {
$col = '0xaa0xff0x7d';
}

$colour = str_split($col, 4);
$hex1 = $colour[0];
$hex2 = $colour[1];
$hex3 = $colour[2];

function image_colorize4(&$img,$rgb) {
  imageTrueColorToPalette($img,true,256);
  $numColors = imageColorsTotal($img);
  for ($x = 0; $x < $numColors; $x++) {
	list($r,$g,$b) = array_values(imageColorsForIndex($img,$x));
	$grayscale = ($r + $g + $b) / 3 / 0xff;
	imageColorSet($img,$x,
	  $grayscale * $rgb[0],
	  $grayscale * $rgb[1],
	  $grayscale * $rgb[2]);
}
}
$color = array($hex1,$hex2,$hex3);
$lay4 = "badges/templates/$arr4[0].gif";
$img = imageCreateFromgif($lay4);
image_colorize4($img,$color);
if(file_exists("badges/templates/$arr4[0]_$arr4[0].gif")){
$olay = imagecreatefromgif("badges/templates/$arr4[0]_$arr4[0].gif");
imagecopymerge($img, $olay, 0, 0, 0, 0, $h, $w, 100);
	 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	} else {
		 imagecopy($im, $img, $p, $pp, 0, 0, $h, $w);
	}
	}
imagegif($im);
imagedestroy($im);
?>
Uso: <img src="badge.php?badge=b0503Xs09114s05013s05015">

Edição feita por: Igor., 22/06/2008, 21:40.


#12 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 22/06/2008, 21:45

Igor, no script, simplesmente colore a imagem toda com uma cor só?
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#13 Igor.

Igor.

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 22/06/2008, 21:57

Espere, vou zipar o arquivo e mandar.
Aí vocês podem ver ele com as imagens.

Arquivo anexado.

Attached Files



#14 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 22/06/2008, 22:16

Agora entendi '-', pelo que vi ele tem os padrões de desenhos e depois com os código ele monta dos desenhos prontos dele, um novo desenho pra você... '-'

Edição feita por: lwirkk, 22/06/2008, 22:17.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#15 Igor.

Igor.

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 22/06/2008, 22:20

Sim, mas eu quero a parte que ele coloca outra cor nas imagens.




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq