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.
Vinicius Cruz é formado em Ciências da Computação (2008) e desenvolvedor desde 2004. Atualmente cursa pós-graduação em Arquitetura de Software e Convergência de Mídia.
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