Otro blog más de diseño
Esta clase en php sube imágenes y las manipula con mucha facilidad. Es posible cambiar el nombre, crear miniaturas, añadir textos, fusionar con otras imágenes, cambiar el brillo, saturación, contrastes, añadirle tintas en un solo paso.
Su uso es muy sencillo. Añadimos el include a la clase, la iniciamos y le indicamos la carpeta de destino.
include('class.upload.php');
$handle = new Upload($_FILES['foto']);
$carpeta = $_POST['carpeta'];
Ahora por ejemplo redimensionamos la imagen y la comprimimos al 80%
$handle->image_resize = true; $handle->image_x = 640; $handle->image_y = 480; $handle->image_ratio = true; $handle->jpeg_quality = 80; $handle->Process($carpeta);
Y de la misma manera, creamos otra instacia, a la que cambiamos el nombre añadiéndo el prefijo “thmb_”, la redimensionamos a 200×150 respetando la relación alto/ancho, y rellenamos de negro el espacio sobrante. También la comprimimos al 80%.
$handle->file_new_name_body =
'thmb_'.$handle->file_src_name_body;
$handle->image_resize = true;
$handle->image_ratio_fill = 'C';
$handle->image_x = 200;
$handle->image_Y = 150;
$handle->jpeg_quality = 80;
$handle->image_background_color = '#000000';
$handle->Process($carpeta);
$handle-> Clean();
Como véis su uso es muy sencillo.
Está en su versión 0.25 (y proximamente la 0.26) y está bajo licencia GPL.
[ web ] [ ejemplos ] [documentación]
Qué puedo decir de mi que no se haya dicho ya antes.
René
junio 2nd, 2011 el 4:47 am
Excelente, gracias tu post me fue de mucha ayuda
Torito
junio 21st, 2011 el 9:50 pm
Vale, pero no entiendo… No me da error pero tampoco me sale nada… Y se supone que aquí no hace falta una base de datos para nada, ¿verdad?
cmacias
junio 22nd, 2011 el 3:48 am
Para nada. De todas formas comprueba que hayas cambiado los campos que coloco a modo de ejemplo ($_FILES['foto'], $_POST['carpeta'], etc) y que venga de un formulario por POST y que el “enctype” del form sea del tipo “multipart/form-data”.
Torito
junio 22nd, 2011 el 5:14 am
Gracias, cmacias, pero debo ser un inepto total, porque consigo subir imágenes con un script que tengo para subir archivos, pero al juntarle esto no me hace nada. En vez de foto he puesto imagen, y en carpeta he puesto dibujos, y he creado la carpeta dibujos en mi servidor. Simplemente quiero que me aparezca el mismo archivo que se sube al servidor, no sé si con un if o algo así, pero se me resiste… ¿Alguien sabe de un código que me pueda servir? Gracias.
Torito
junio 22nd, 2011 el 5:16 am
Perdón, edito: Sí que me hace algo, me hace simplemente lo que hace el script que sí funciona, o sea, subirme la imagen al servidor sin que se vea y ya está. Ya sé que luego puedo mostrarla yo con un img=, o algo así, pero quiero que sea automático. Ahora estoy pensando que quizá creando un array de DB…
cmacias
junio 22nd, 2011 el 2:06 pm
De todas formas te recomiendo que le eches un vistazo a la documentación ya que te muestra los métodos de recuperar el nombre del archivo, extensión, etc para después poderlos meter en la bd o lo que necesites hacer con esa imagen.