Hola
Me he planteado mostrar los thumbails de cientos de imágenes mediante un script php que valdría para redimensionarlas y mostrarlas en el tamaño deseado. Pero no estoy muy convencido aún de su uso...
He de decir que la página donde se mostrarán contendrá en una misma página alrededor de 60 o 70 imágenes thumbails a través de las cuales podrá acceder a la imagen ampliada y otro tipo de información que no viene al caso.
Como con el procedimiento que sigo actualmente al realizar una actualización del contenido de la web en imágenes tengo que crear yo mismo los thumbails mediante photoshop(de una sola tirada, claro, por carpeta, pero quita tiempo y es costoso renombrarlas), me preguntaba si tal vez saldría más rentable crear los thumbails desde un script php.
Pero me cuestiono si tal vez crear 60 o 70 imágenes mediante un script de golpe puede crear lentitud de carga en la página o bien comer transferencia de algún modo.
El script en cuestión sería de un usuario del foro, linkito:
Llamada a la imagen con la configuración deseada:
Código PHP:
<img src="img.php?imagen=rutadelaimagen&w=60&h=60" width="60" height="60" border="0" alt="" />
Script php
Código PHP:
// IMG redimensionador (Héctor S. > [email protected])
//////////////////////////////////////////////////////////////////////////
if(file_exists($_GET["imagen"])){
$fotoperf = $_GET["imagen"];
header("Content-type: image/jpeg");
$fileextsp = split("/",$fotoperf);
$count = count($fileextsp) - 1;
$nomarch = $fileextsp[$count];
$fileext2 = pathinfo($nomarch);
$formatperf = strtolower($fileext2["extension"]);
$getsizesperf = getimagesize($fotoperf);
$widthf = $_GET["w"];
if($_GET["h"] == ""){
$h2 = $widthf * $getsizesperf[1];
$h2 = $h2 / $getsizesperf[0];
$heightf = $h2;
}else{
$heightf = $_GET["h"];
}
if($formatperf == "jpg" || $formatperf == "jpeg"){ $imgperf = imagecreatefromjpeg($fotoperf); }
if($formatperf == "gif"){ $imgperf = imagecreatefromgif($fotoperf); }
if($formatperf == "png"){ $imgperf = imagecreatefrompng($fotoperf); }
if($formatperf == "bmp"){ $imgperf = imagecreatefrombmp($fotoperf); }
if($getsizesperf[1] > $getsizesperf[0]){
$newheightperf = $widthf * $getsizesperf[1];
$newheightperf = $newheightperf / $getsizesperf[0];
$newwidthperf = $widthf;
if($newheightperf < $heightf){
$newwidthperf = $heightf * $getsizesperf[0];
$newwidthperf = $newwidthperf / $getsizesperf[1];
$newheightperf = $heightf;
}
}else{
$newwidthperf = $heightf * $getsizesperf[0];
$newwidthperf = $newwidthperf / $getsizesperf[1];
$newheightperf = $heightf;
if($newwidthperf < $widthf){
$newheightperf = $widthf * $getsizesperf[1];
$newheightperf = $newheightperf / $getsizesperf[0];
$newwidthperf = $widthf;
}
}
$thumbperf = imagecreatetruecolor($newwidthperf, $newheightperf);
imagecopyresampled($thumbperf, $imgperf, 0, 0, 0, 0, $newwidthperf, $newheightperf, $getsizesperf[0], $getsizesperf[1]);
if($newwidthperf == $widthf){
$x1 = 0;
$x2 = $widthf;
}else{
$sobraw = $newwidthperf - $widthf;
$mitadw = floor($sobraw / 2);
$x1 = $mitadw;
$x2 = $mitadw + $widthf;
}
if($newheightperf == $heightf){
$y1 = 0;
$y2 = $heightf;
}else{
$sobrah = $newheightperf - $heightf;
$mitadh = floor($sobrah / 2);
$y1 = $mitadh;
$y2 = $mitadh + $heighf;
}
$fpperf = imagecreatetruecolor ($widthf, $heightf);
imagecopy($fpperf, $thumbperf, 0, 0, $x1, $y1, $widthf, $heightf);
imagejpeg($fpperf,"",100);
imagedestroy($fpperf);
}
Por cierto, si conocéis o se os ocurre algún otro procedimiento para crear thumbails tras subir las imágenes mediante FTP a la página, no dudéis en comentarlo.
Gracias de antemano.