Estuve utilizando hasta la fecha, un código para crear automáticamente thumbnails (de una en una). El caso, es que hoy quise ir un poco más allá e incorporarlo a mi base de datos.
Codigo de mipagina.php (en un servidor de un ISP de internet):
Código:
Este código lo pongo dentro de un while, y así me debería ir generando según recorre con el select la DB. El caso es que no funciona.include("easythumbnail.class.php"); $ruta = 'http://LAIPDEMISERVERLOCAL/Imagenes/'; $Carpeta = str_replace(".","_",$fila["idfoto"]); $barra = '/'; $Imagen1 = $fila["Imagen1"]; $ImagenDestino = $Carpeta."_mini.jpg"; $total = $ruta.$Carpeta.$barra.$Imagen1; echo $total; // Asi veo toda la url que me crea $thumb= new EasyThumbnail("$total", "images/$ImagenDestino", 350);?> <center><img src="images/propiedades/<?echo $ImagenDestino ?>"></center><br>
El error debe estar en que este script no debe permitir a mi servidor local. El caso esta en que si pongo http://miipfija/micarpeta/mifoto.jpg (resultado de la variable total, la veo en el navegador).
Si cambio la variable total, por una carpeta en mi servidor contratado con un ISP funciona.
El problema está en que quiero mostrar 'noticias' que tengo en mi DB de mi hosting (ISP), pero mostrar las fotos de mi servidor local (11 GB), y antes deseo llamarlas con el script para que tan solo en el servidor del ISP se guarde la thumbnail.
Alguna idea de pq falla el script con la ip de mi server local?.
Pongo más abajo la clase thumbail.
Gracias a todos
Código del include de la clase thumbnail:
Código:
<? /* EasyThumbnail - versão 0.1 - Por Rogério Bragil - Esta classe cria um thumbnail de uma imagem através de um cálculo de aproximação. Você pode criar miniaturas de imagens de diferentes tamanhos que o resultado será uma coleção de thumbnails de dimensões parecidas. Ideal para albuns de fotos, onde basta você fazer o upload da imagem e deixar a classe gerar o thumbnail. OBS: trabalha com jpg e png somente. e-mail: [email protected] - Qualquer sugestão, dúvida ou crítica serão bem aceitos! */ class EasyThumbnail { private $debug= true; private $errflag= false; private $ext; private $origem; private $destino; private $errormsg; function __construct($imagem, $destino, $aprox) { // se o arquivo não existir, erro if (!file_exists($imagem)) { $this->errormsg= "Arquivo não encontrado."; return false; } else { $this->origem= $imagem; $this->destino= $destino; } // obtém a extensão do arquivo if (!$this->ext= $this->getExtension($imagem)) { $this->errormsg= "Tipo de arquivo inválido."; return false; } // gera a imagem do thumbnail com o caminho e nome do arquivo especificados $this->createThumbImg($aprox); } // retorna as dimensões (x,y) do thumbnail a ser gerado public function getThumbXY($x, $y, $aprox) { if ($x >= $y) { if ($x > $aprox) { $x1= (int)($x * ($aprox/$x)); $y1= (int)($y * ($aprox/$x)); } else { $x1= $x; $y1= $y; } } else { if ($y > $aprox) { $x1= (int)($x * ($aprox/$y)); $y1= (int)($y * ($aprox/$y)); } // Caso a imagem seja menor do que // deve ser aproximado, mantém tamanho original para o thumb. else { $x1= $x; $y1= $y; } } $vet= array("x" => $x1, "y" => $y1); return $vet; } // cria a imagem do thumbnail private function createThumbImg($aprox) { // imagem de origem $img_origem= $this->createImg(); // obtém as dimensões da imagem original $origem_x= ImagesX($img_origem); $origem_y= ImagesY($img_origem); // obtém as dimensões do thumbnail $vetor= $this->getThumbXY($origem_x, $origem_y, $aprox); $x= $vetor['x']; $y= $vetor['y']; // cria a imagem do thumbnail $img_final = ImageCreateTrueColor($x, $y); ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x+1, $y+1, $origem_x, $origem_y); // o arquivo é gravado if ($this->ext == "png") imagepng($img_final, $this->destino); elseif ($this->ext == "jpg") imagejpeg($img_final, $this->destino); } // cria uma imagem a partir do arquivo de origem private function createImg() { // imagem de origem if ($this->ext == "png") $img_origem= imagecreatefrompng($this->origem); elseif ($this->ext == "jpg" || $this->ext == "jpeg") $img_origem= imagecreatefromjpeg($this->origem); return $img_origem; } // obtém a extensão do arquivo private function getExtension($imagem) { // isso é para obter o mime-type da imagem. $mime= getimagesize($imagem); if ($mime[2] == 2) { $ext= "jpg"; return $ext; } else if ($mime[2] == 3) { $ext= "png"; return $ext; } else return false; } // mensagem de erro public function getErrorMsg() { return $this->errormsg; } public function isError() { return $this->errflag; } } ?>