Additions:
imagejpeg($new_image,ROOTDIR.'/pix/galeria/'.$size.'_'.$filename,72);
imagejpeg($new_image,null,72);
Deletions:
imagejpeg($img,ROOTDIR.'/pix/galeria/'.$size.'_'.$filename,72);
imagejpeg($img,null,72);
Additions:
$new_image = imagecreatetruecolor ($ancho, $alto);
Deletions:
$new_image = imagecreatetruecolor (ancho, alto);
Additions:
Requiere tener instalado el paquete
ImageMagick, con
convert y require poder usar
shell_exec, o similares. Una alternativa podría ser usar una extensión de php, por ejemplo
IMagick∞. En este ejemplo, "files/galeria" es el nombre del subdirectorio donde se guardó la imágen de tamaño completo, y "pix/galeria" donde se guardará el thumbnail
Deletions:
Requiere tener instalado el paquete
ImageMagick, con
convert y require poder usar
shell_exec, o similares. En este ejemplo, "files/galeria" es el nombre del subdirectorio donde se guardó la imágen de tamaño completo, y "pix/galeria" donde se guardará el thumbnail
Additions:
Requiere tener instalado el paquete
ImageMagick, con
convert y require poder usar
shell_exec, o similares. En este ejemplo, "files/galeria" es el nombre del subdirectorio donde se guardó la imágen de tamaño completo, y "pix/galeria" donde se guardará el thumbnail
Deletions:
Requiere tener instalado el paquete
ImageMagick, con
convert y require poder usar shell_exec, o similares. En este ejemplo, "files/galeria" es el nombre del subdirectorio donde se guardó la imágen de tamaño completo, y "pix/galeria" donde se guardará el thumbnail
No differences.
Additions:
imagecopyresampled($image, $new_image, 0, 0, 0, 0, $ancho, $alto, imagesx($image), imagesy($image));
Deletions:
imagecopyresampled($image, $new_image, 0, 0, 0, 0, ancho, alto, imagesx($image), imagesy($image));
Additions:
HOWTO: Crear thumbnails
Nota: almidon.org tiene una imitación de esto, basado justamente en phpThumb.
CategoryDev
Deletions:
HOWTO: Crear thumnails
No differences.
Additions:
Requiere php-gd. Esto es dentro de PHP, el consumo de memoria puede ir para el proceso httpd, engordando en algunos casos demasiado. Pero no require poder ejecutar comandos del sistema.
$ancho = '100';
$alto = '200';
$image = imagecreatefromstring(file_get_contents(ROOTDIR.'/files/galeria/'.$filename));
$new_image = imagecreatetruecolor (ancho, alto);
imagecopyresampled($image, $new_image, 0, 0, 0, 0, ancho, alto, imagesx($image), imagesy($image));
header('Content-type: image/jpeg');
imagejpeg($img,ROOTDIR.'/pix/galeria/'.$size.'_'.$filename,72);
Para no guardarlo en un archivo sino tirarlo a pantalla:
imagejpeg($img,null,72);
Aunque en el ejemplo con ceros (0,0,0,0) los puntos de destino pueden usarse para hacer un efecto de "crop" a la imágen, convervando así siempre la misma medida.
php-gd tiene muchas funciones que permiten modificar la imágen, agregar texto, etc. Ver:
http://www.php.net/manual/en/ref.image.php∞
Usando phpThumb
phpThumb, en sí mismo usa php-gd o
ImageMagick como base. Es digamos una interface intermedia, facilita muchas cosas, pero, sobretodo e una interface web, es decir puede llamarse con algo así como:
http://example.org/phpThumb.php?filename=galeria/paisaje.jpg&action=resize&height=200&widht=100∞
Usando rewrite, o el truco que prefieras se peude convertir en:
http://example.org/resize/galeria/100x200/paisaje.jpg∞
Al estar expuesto al web, es más propenso a recibir ataques. Es bueno especificar que tamaños puede recibir,
phpThumb, hace uso de su propio sistema de cache, esto permite no ejecutar (ya sea GD o
ImageMagick) cada vez que se le ejecute con los mismos parametros.
HOWTO: Crear thumnails
Cómo crear thumbnails, especialmente desde PHP.
Requiere tener instalado el paquete
ImageMagick, con
convert y require poder usar shell_exec, o similares. En este ejemplo, "files/galeria" es el nombre del subdirectorio donde se guardó la imágen de tamaño completo, y "pix/galeria" donde se guardará el thumbnail
<?php
define(ROOTDIR,
'/var/www/html/');
define(CONVERT,
'/usr/bin/convert');
$size =
'100x200';
$filename =
'paisaje.jpg'
$cmd_size =
escapeshellarg($size);
$cmd_src =
escapeshellarg(ROOTDIR.
'/files/galeria/'.
$filename);
$cmd_dst =
escapeshellarg('jpeg:'.ROOTDIR.
'/pix/galeria/'.
$size.
'_'.
$filename);
$cmd_bin =
escapeshellcmd(CONVERT
);
$cmd =
$cmd_bin .
" -thumbnail $cmd_size -quality 85 -interlace line $cmd_src $cmd_dst";
exec($cmd,
$status);
if ($status) error_log('Error en convert: '.
$cmd);
ImageMagick tiene montones de funciones como blur, border, box, crop, emboss, rotate, trim, etc. Para mas información:
man convert.
Existen opciones como el punto de gravedad que cuando se realiza crop permite decidir donde cortar:
# [...]
$gravity = 'center';
$cmd = $cmd_bin " -gravity $gravity -crop $cmd_size+0+0";
# [...]
Usando PHP-GD
%%(php)
<?php