Ver Mensaje Individual
  #15 (permalink)  
Antiguo 24/09/2010, 06:02
sandinosaso
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Galeria fotos Jquery

Para crear los thumbs (yo lo hice con una altura de 70 y el ancho se calcula de forma que quede proporcional) si quieres cambiar el tamaño modifica la variable $ALTURA para el valor que te sirva....todos los thumbs seran de esa altura (en pixeles) y el ancho se calcula de forma de no deformar la imagen.

En fin...te agrande la letra de la parte mas importante (la que crea el thumb) para darte una orientacion...
Otro detalle no menor es que para esto precisas tener la extension GD de php cargada (es una extension que trae php para el manejo de imagenes) para habilitarla solo debes pedirle a tu hosting que lo haga...(es descomentar una linea en el archivo de configuracion php.ini)...

Bueno...suponiendo que el usuario ya envio el formulario con la imágen....
Asi lo que harias seria crear el thumb y copiarlo a una carpeta de thumbs:


Código:
$ALTURA=70;
       
	  $NAMETHUMB =  $_SERVER["DOCUMENT_ROOT"]."/images/temp/thumbtemp";//Carpeta temporal donde se crean los thumbs

          $id_input_file = "NOMBRE_DEL_CAMPO_FILE_EN_TU_FORMULARIO";

	  // Mime types permitidos
	  $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
	  // Maximo tamaño permitido de fotos (en Bits...creo es 1MB)
	  $MAX_FOTO_TAM=1048576;

	  // Variables de la foto
	  $name = $FILES[$id_input_file]["name"];
	  $type = $FILES[$id_input_file]["type"];
	  $tmp_name = $FILES[$id_input_file]["tmp_name"];
	  $size = $FILES[$id_input_file]["size"];

	  // Verificamos si el archivo es una imagen válida

	if ($size != 0){ // SI QUIZO CAMBIAR LA FOTO

                  //Controlo sea una imagen valida,gif,jpg o png

		  if(!in_array($type, $mimetypes)){
			$any_error = TRUE;
			$msg_error = "El archivo subido no es una imágen válida.";
		  }

		  //Controlo que el tamaño de la foto no supere el maximo
		  if ($size > $MAX_FOTO_TAM){
			$any_error = TRUE;
			$msg_error = "La foto subida supera el tamaño  máximo permitido (1 Mb).";  

		  }


			if (!$any_error){
				  // Creando el thumbnail

				  switch($type) {

				    case $mimetypes[0]:

				    case $mimetypes[1]:

				      $img = imagecreatefromjpeg($tmp_name);

				      break;

				    case $mimetypes[2]:

				      $img = imagecreatefromgif($tmp_name);

				      break;

				    case $mimetypes[3]:

				      $img = imagecreatefrompng($tmp_name);

				      break;

				  }

				  $datos = getimagesize($tmp_name);

				  $ratio = ($datos[1]/$ALTURA);

				  $ancho = round($datos[0]/$ratio);

				  $thumb = imagecreatetruecolor($ancho, $ALTURA);

				  imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, $ALTURA, $datos[0], $datos[1]);

				  switch($type) {

				    case $mimetypes[0]:

				    case $mimetypes[1]:

				      imagejpeg($thumb, $NAMETHUMB);

					  $extension='.jpeg';

					  break;

				    case $mimetypes[2]:

				      imagegif($thumb, $NAMETHUMB);

					  $extension='.gif';

				      break;

				    case $mimetypes[3]:

				      imagepng($thumb, $NAMETHUMB);

					  $extension='.png';

				      break;

				  }


Ahora veo que en tu web su usan imagenes en thumbs para la galeria que estan en la carpeta images/thumbs y deben tener el mismo nombre que las imagenes originales....
Es asi como funciona esta galeria verdad??..:Es decir sin esta administracion tu lo que haces hoy por hoy es subir imagenes a un lugar y thumbs en la carpeta thumbs...con el mismo nombre y luego colocas los link...y la libreria que estes usando (seguramente alguna de jquery) se encarga del resto de la "magia" ...no...porque veo que los links de los thumbs que te genera son de la forma:

<a href="images/acceso-oeste/705.jpg" class="ad-thumb0"> <img class="image0" longdesc="Excelente parque industrial abierto de 2º categoría,con 100 mts de frente sobre Acceso Oeste y 200 mts de fondo.Cuenta con gas industrial y media tension instalada.Ideal para centro comercial o grandes industrias. El valor es de 140 u$s el m2" title="705 FRACCION INDUSTRIAL DE 20000 m2, UBICADA SOBRE EL ACCESO OESTE KM 39,EN LA LOCALIDAD DE MORENO" src="images/thumbs/705.jpg" style="opacity: 0.7;"> </a>


Por lo que despues del codigo de arriba deberias hacer:


Código:
 $nombre = "IGUAL_NOMBRE_QUE_FOTO_ORIGINAL" . $extension;
 $destino = $_SERVER["DOCUMENT_ROOT"]."/images/thumbs/".$nombre;
 copy($NAMETHUMB,$destino);
Esto lo que hace es mover la imagen thumb a su carpeta correspondiente