Gerando thumb auto ajustável com o php.

Em quase todos os sistemas é importante converter uma foto final em uma miniatura, existe na internet dezenas de scripts para fazer essa conversão.

Criei uma função para que esse processo seja simples, e que o redimensionamento fosse o mais proporcional possível.

Função:
gerar_tumbs_real(largura,altura,qualidade,dir Original,dir Final);

Vamos ver o Exemplo:foto2
foto Original

gerar_tumbs_real(190,90,100,’foto2.jpg’,'tumb2.jpg’);
tumb2
foto Tumb

gerar_tumbs_real(90,190,100,’foto2.jpg’,'tumb3.jpg’);
 tumb3
foto Tumb

gerar_tumbs_real(90,90,100,’foto2.jpg’,'tumb1.jpg’);
tumb1 
foto Tumb

Abaixo seque a função:

  1: <?
  2: function gerar_tumbs_real($t_x,$t_y, $qualidade,$c_original,$c_final){
  3:
  4: $thumbnail = imagecreatetruecolor($t_x,$t_y);
  5: $original = $c_original;
  6:   $igInfo = getImageSize($c_original) ;
  7:    switch ($igInfo['mime']) {
  8:        case 'image/gif':
  9:            if (imagetypes() & IMG_GIF)  {  $originalimage = imageCreateFromGIF($original) ; } else {   $ermsg = 'GIF formato não suportado<br />'; }
 10:            break;
 11:        case 'image/jpeg':
 12:            if (imagetypes() & IMG_JPG)  {  $originalimage = imageCreateFromJPEG($original) ;  } else {  $ermsg = 'JPEG formato não suportado<br />'; }
 13:            break;
 14:        case 'image/png':
 15:            if (imagetypes() & IMG_PNG)  {  $originalimage = imageCreateFromPNG($original) ; } else {  $ermsg = 'PNG formato não suportado<br />';   }
 16:            break;
 17:        case 'image/wbmp':
 18:            if (imagetypes() & IMG_WBMP)  {  $originalimage = imageCreateFromWBMP($original) ;   } else { $ermsg = 'WBMP formato não suportado<br />'; }
 19:            break;
 20:        default:
 21:            $ermsg = $igInfo['mime'].' formato não suportado <br />';
 22:            break;
 23:    };
 24: $nLargura = $igInfo[0];
 25: $nAltura = $igInfo[1];
 26:
 27: if( ($nLargura > $t_x )and($nAltura >  $t_y) ){
 28:  if($t_x <= $t_y){
 29:   $nLargura = (int) (($igInfo[0]*$t_y)/$igInfo[1]);
 30:   $nAltura = $t_y;
 31:  } else {
 32:   $nLargura = $t_x ;
 33:   $nAltura = (int) (($igInfo[1]*$t_x)/$igInfo[0]);
 34:   if($nAltura < $t_y){
 35:     $nLargura = (int) (($igInfo[0]*$t_y)/$igInfo[1]);
 36:    $nAltura = $t_y;
 37:    };
 38:  };
 39: };
 40:
 41: $x_pos =  ($t_x/2)-( $nLargura/2);
 42: $y_pos =  ($t_y/2)-($nAltura/2);
 43: imagecopyresampled($thumbnail, $originalimage,  $x_pos, $y_pos,0, 0, $nLargura, $nAltura, $igInfo[0],$igInfo[1]);
 44: imagejpeg($thumbnail,$c_final ,$qualidade);
 45: imagedestroy($thumbnail);
 46: return 'ok';
 47: };
 48: ?>

 

se preferir baixe o arquivo: 

Leave A Comment