Cortando e redimensionando imagens com o CodeIgniter

Eu sei que não tenho aparecido muito por aqui, mas o desenvolvimento da nova versão do SiGA está tomando todo tempo imaginável e tive que priorizar aquilo, pois o prazo já está estourando. Mas não é sobre isso que quero escrever.

Recentemente precisei de imagens quadradas num projeto e esse mesmo procedimento se repetiria várias vezes, então criei esta extensão da Biblioteca Image_lib que já vem com o CodeIgniter. Na verdade o código serve não só para imagens quadradas, já que o tamanho tem que ser definido literalmente.

Cole o código abaixo na pasta application/library com o nome MY_Image_lib.php:

PHP:
  1. class MY_Image_lib extends CI_Image_lib {
  2. /**
  3. * Crop and resize a image
  4. *
  5. * @return bool
  6. */
  7.     function crop_and_resize() {
  8.         $width = $this->width;
  9.         $height = $this->height;
  10.         $size = getimagesize($this->source_folder . $this->source_image);
  11.        
  12.         if ($size[0]> $size[1]) {
  13.             $this->width$width / $height * $size[1];
  14.             $this->height = $size[1];           
  15.         } else {
  16.             $this->width = $size[0];
  17.             $this->height$height / $width * $size[0];           
  18.         }
  19.         $this->x_axis = ($size[0] - $this->width) / 2;
  20.         $this->y_axis = ($size[1] - $this->height) / 2;
  21.        
  22.         if ( ! $this->crop() ) {
  23.             return false;
  24.         }
  25.        
  26.         $this->width = $width;
  27.         $this->height = $height;
  28.                
  29.         if ( ! $this->resize()) {
  30.             return false;
  31.         }
  32.         return true;
  33.     }
  34. }

Pra usar é muito fácil:

PHP:
  1. $config = array(
  2. 'source_image' => '/path/para/a/imagem.jpg',
  3. 'maintain_ratio' => false,
  4. 'width' => 48,
  5. 'height' => 48);
  6.  
  7. $this->load->library('image_lib', $config);
  8. $this->image_lib->crop_and_resize();

E temos uma imagem como a mostrada abaixo:

2 Comentários

  1. Caio escreveu em 28 de abril de 2008 as 19:44:

    Ola Felipe.

    Se eu desenvolver com esse framework terei problemas em hospedar em algum sítio?

    Valeu … já esta no favoritos ;op

  2. Felipe Diesel escreveu em 29 de abril de 2008 as 08:51:

    Caio,

    Não tive nenhum problema de hospedagem, até por que o CI suporta o PHP 4.3. Se tu utilizas windows só tens que ter um pouco de cuidado quanto a maiúsculas e minúsculas, pois já ouvi relatos de problemas quanto a isso.

    Abraço

Deixe seu comentário