2011-06-23 12 views
21

Estoy diseñando un sitio web y necesito:mejor clase de cultivos PHP imagen

  • subir la imagen
  • Validar que se trata de una imagen (y no, oh no sé .... un virus :))
  • redimensionar la imagen
  • convertir a JPG

imagen esencia básica subir

En lugar de escribir mi propia Estoy tratando de encontrar un clase php que me permite hacer todo esto, porque como dijo Jeff Atwood, "never design what you can steal"

Ahora, antes de seguir adelante y downvote porque yo no' Hacer mi investigación, lo hice:

Google trayendo una gran cantidad de resultados, que es el problema, no sé qué resultados son útiles y cuáles son basura!

Hasta ahora, he encontrado:

¿Alguien tiene alguna experiencia con estas clases? ¿Puedes recomendar una clase de carga de imágenes sobresaliente?

Respuesta

4

La carga de clase de Colin Verot http://www.verot.net/php_class_upload.htm es mi favorita. Utilizo en todos mis proyectos. Le gusta la forma en que 'habla' con la clase y solo usa lo que necesita, pero le ofrece una gran cantidad de configuraciones/métodos para adaptarlo a sus necesidades exactas. ¡Excelente clase!

1

Si está dispuesto a migrar a un marco MVC PHP, le recomiendo encarecidamente Codeigniter.

Además de varias otras clases y bibliotecas que manejan paginación, tablas, seguridad, formularios, etc. CI también tiene clases de carga y manipulación de imágenes muy prácticas y flexibles. Creo que pueden hacer todo lo que necesites (simplemente no estoy seguro acerca de la conversión de jpg).

Puede comprobar a cabo en:

Image manipulation class

File uploading class

17

Mi favorito biblioteca de manipulación de la imagen personal es WideImage. Hace que sea ridículamente fácil hacer ese tipo de tarea.

WideImage::load('pic.png') 
->crop('center', 'center', 90, 50)->saveToFile('cropped/pic.jpg'); 

En cuanto a la validación de si es realmente una imagen o no, utilizar finfo o PEAR::Mime_type. Personalmente prefiero PEAR::Mime_Type. Utiliza finfo pero es simplemente más fácil de usar.

Usando finfo:

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mimetype = finfo_file($finfo, $filename); 

$isImage = (preg_match('#^image/#', $mimetype) === 1); 

El uso de PEAR::Mime_Type:

$mimetype = MIME_Type::autoDetect($filename); 

$isImage = MIME_Type::wildcardMatch('image/*', $mimetype); 
+2

esta es una gran respuesta. Realmente me encanta su solución, ya que es simple y muy agradable de usar;) – nXqd

2

me recomiendan utilizar Smart Image Resizer http://shiftingpixel.com/2008/03/03/smart-image-resizer/

Se obtiene la mejor calidad de imagen después de cambiar el tamaño de

Es extremadamente fácil de usar. Utiliza la memoria caché de imágenes.

+2

Solo un FYI, esto requerirá una versión de GD que admita imageconvolution(). – Fluffeh

5

Salida JCROP Plugin

Esta será uselful para todos

JCROP Image cropping----deepliquid.com/content/Jcrop.html

enter image description here

+2

+1 Para un plugin genial y elegante, y para aquellos de ustedes que se preguntan sobre cómo implementar esto con php, ya existe una implementación dentro de los 'examples' que se encuentran dentro del paquete de descarga .... –

+1

Fácil de entender y instalar. Lo he implementado en 2 o más aplicaciones web. – Nikz

2

recomiendo SimpleImage, es muy sencillo, sólo tiene un archivo y esta actualizado

Ejemplo de uso:

$img = new SimpleImage('image.jpg'); 

// Resize the image to 320x200 
$img->resize(320, 200); 

$img->save('new-image.jpg'); 
+0

este se ve bien :-) Lo usé ahora mismo. – Bogdan