Olá, pessoal

Hoje já estamos na versão 2.0.2 do framework CodeIgniter, mas para quem ainda mantém sistemas nas versões anteriores a 2.0, encontra-se com um problema simples na geração de thumb de imagens PNG com fundo transparente.

Ao tentar gerar um thumb da imagem nas condições citadas, utilizando a biblioteca Image Manipulation Class, temos a desagradável surpresa de obtermos uma imagem com fundo preto. O problema já foi corrigido na verssão 2.0, e pode ser facilmente resolvido nas versões anteriores.

Para isso, abra o arquivo ./system/libraries/Image_lib.php, localiza a linha 515. Você deve encontrar o seguinte código:

515
516
$dst_img = $create($this->width, $this->height);
$copy($dst_img, $src_img, 0, 0, $this->x_axis, $this->y_axis, $this->width, $this->height, $this->orig_width, $this->orig_height);

Então, adicione entre as duas linhas o seguinte código, ficando assim:

515
516
517
518
519
520
521
$dst_img = $create($this->width, $this->height);
if ($this->image_type == 3) // png we can actually preserve transparency
{
        imagealphablending($dst_img, FALSE);
        imagesavealpha($dst_img, TRUE);
}
$copy($dst_img, $src_img, 0, 0, $this->x_axis, $this->y_axis, $this->width, $this->height, $this->orig_width, $this->orig_height);

O código inserido foi extraido justamente da versão atual do sistema. Assim, quando você precisar atualizar o core do framework em sua aplicação, não precisará se preocupar em copiar o hack para o novo arquivo, ok?!

No mais, só sucesso! Abraço e até mais.



  1. ronan paz com deus dihitt ! on terça-feira 17, 2011

    ola , prazer sou o paz no dihitt vim conhecer seu espaço e curti muito , tbm peso que conheça o meu e por favor me siga abç espero vc lah clica para entra no site