PHP snippet Como crear thumbnails desde MySQL con PHP

Jun 2008
28
1,030 views
3

Bueno creo que ya estubo bien de tantos articulos sobre psp y otras cosas y es tiempo de volver a lo mio, los tutoriales con mas codigo que palabras, aunque de repente pondre uno que ptro post de posicionamiento :P,

Requisitos:

  • Tener instalado PHP y MySQL.
  • Conocimientos basicos de PHP y MySQL.
  • GD instalado y funcionando.

1.- Analicemos el problema tomando como base el articulo Manejo de archivos con PHP y MySQL en el cual explico como guardar archivos en MySQL, asi que tomaremos la tabla de ese ejemplo.

Bueno ya fue mucha platica mejor vemos el codigo por partes, al final lo pondre todo junto:

$id_doc=$_REQUEST['id'];
$qry="Select * from tbl_documentos where id_documento=$id ";
$res=mysql_query($qry) or die(mysql_error()." qry::$qry");
  • 1.- OBTENEMOS EL ID
  • 2.- CONSTRUIMOS LA CONSULTA PARA OBTENER EL DOCUMENTO
  • 3.- EJECUTAMOS LA CONSULTA
if (mysql_numrows($res)>0) {
$obj=mysql_fetch_object($res);
$im= imagecreatefromstring($obj->contenido);
}else{
$im= imagecreatefromgif("media/images/nophoto.gif");
}
  • 1.- VERIFICAMOS QUE LA IMAGEN EXISTE
  • 3.- CREAMOS UNA IMAGEN CON LA FUNCION DE GD imagecreatefromstring YA QUE ESTA PUEDE LEER EL CAMPO BLOB QUE ESTAMOS OBTENIENDO
  • 5.- SI NO EXISTE USAMOS ALGUNA OTRA
header("Content-type: {$obj->tipo}");
$width = imagesx($im);
$height = imagesy($im);
$imgw = 100;
$imgh = $height / $width * $imgw;
$thumb=imagecreatetruecolor($imgw,$imgh);
$back = imagecolorallocate($thumb, 255, 255, 255);
imagefill ( $thumb, 0, 0, $back );
  • 1.- OBTENEMOS EL TIPO MIME DEL ARCHIVO ASI EL NAVEGADOR SABRA DE QUE SE TRATA
  • 2.- OBTENEMOS LAS MEDIDAS ACTUALES DE LA IMAGEN
  • 4.- ESTABLECEMOS EL TAMAÑO DEL THUMBNAIL
  • 5.- CALCULAMOS EL ALTO DE LA IMAGEN PARA MANTER EL ASPECTO
  • 6.- CREAMOS UNA NUEVA IMAGEN UTILIZANDO LAS NUEVAS MEDIDAS
  • 7.- CREAMOS UN COLOR PARA EL FONDO ESTO ES IMPORTANTE PORQUE SI LA IMAGEN CONTIENE FONDO BLANCO SOLO OBTENDRIAMOS UNA IMEGEN NEGRA
  • 8.- RELLENAMOS EL LA IMAGEN CON EL COLOR QUE CREAMOS EN EL PASO ANTERIOR
ImageCopyResized($thumb,$im,0,0,0,0,$imgw,$imgh,ImageSX($im),ImageSY($im));
$out = ImagejpeG($thumb);
imagedestroy ($im);
imagedestroy ($thumb);
print $out;
  • 1.- COPIAMOS LA IMAGEN ORIGINAL AL THUMBNAIL
  • 2.- CREAMOS UNA IMAGEN TIPO JPEG
  • 3.- LIMPIAMOS LA MEMORIA
  • 4.- Y POR ULTIMO SIMPLEMENTE IMPRIMIMOS EL CONTENIDO DEL ARCHIVO

Aquie esta el codigo completo

//OBTENEMOS EL ID
$id_doc=$_REQUEST['id'];

//CONSTRUIMOS LA CONSULTA PARA OBTENER EL DOCUMENTO
$qry="Select * from tbl_documentos where id_documento=$id ";

//EJECUTAMOS LA CONSULTA
$res=mysql_query($qry) or die(mysql_error()." qry::$qry");

//VERIFICAMOS QUE LA IMAGEN EXISTE
if (mysql_numrows($res)>0) {
$obj=mysql_fetch_object($res);

//CREAMOS UNA IMAGEN CON LA FUNCION DE GD imagecreatefromstring
//YA QUE ESTA PUEDE LEER EL CAMPO BLOB QUE ESTAMOS OBTENIENDO
$im= imagecreatefromstring($obj->contenido);
}else{
//SI NO EXISTE USAMOS ALGUNA OTRA
$im= imagecreatefromgif("media/images/nophoto.gif");
}
//OBTENEMOS EL TIPO MIME DEL ARCHIVO ASI EL NAVEGADOR SABRA DE QUE SE TRATA
header("Content-type: {$obj->tipo}");

//OBTENEMOS LAS MEDIDAS ACTUALES DE LA IMAGEN
$width = imagesx($im);
$height = imagesy($im);

// ESTABLECEMOS EL TAMAÑO DEL THUMBNAIL
$imgw = 100;

//CALCULAMOS EL ALTO DE LA IMAGEN PARA MANTER EL ASPECTO
$imgh = $height / $width * $imgw;

// CREAMOS UNA NUEVA IMAGEN UTILIZANDO LAS NUEVAS MEDIDAS
$thumb=imagecreatetruecolor($imgw,$imgh);

//CREAMOS UN COLOR PARA EL FONDO
//ESTO ES IMPORTANTE PORQUE SI LA IMAGEN CONTIENE FONDO BLANCO
//SOLO OBTENDRIAMOS UNA IMEGEN NEGRA
$back = imagecolorallocate($thumb, 255, 255, 255);
// RELLENAMOS EL LA IMAGEN CON EL COLOR QUE CREAMOS EN EL PASO ANTERIOR
imagefill ( $thumb, 0, 0, $back );

// COPIAMOS LA IMAGEN ORIGINA AL THUMBNAIL
ImageCopyResized($thumb,$im,0,0,0,0,$imgw,$imgh,ImageSX($im),ImageSY($im));

//CREAMOS UNA IMAGEN TIPO JPEG
$out = ImagejpeG($thumb);

// LIMPIAMOS LA MEMORIA
imagedestroy ($im);
imagedestroy ($thumb);
//Y POR ULTIMO SIMPLEMENTE IMPRIMIMOS EL CONTENIDO DEL ARCHIVO
print $out;

Guardamos el codigo con el nombre que queramos yo por ejemplo thumbnail.php y lo usamos de la siguiente manera

<img src="http://blog.deliriumlabs.net/wp-admin/thumbnail.php?id_documento=1" />

Espero les sea util este articulo,

Links Relacionados

Mar 2008
20
494 views
0

PHP Snippet Max Upload File Size

Mar 2008
20
494 views
0

En algunas ocaciones necesitamos poder subir archivos muy pesados, y probablemente nuestra configuración no lo permita, asi que tenemos 2 opciones:

1.- CAMBIAR LA CONFIGURACION DEL archivo php.ini

SI NO SABEMOS DONDE SE ENCUENTRA NUESTRO php.ini utilicemos la funcion:

phpinfo();

Y esto nos mostrara la ubicacion del archivo asi como los valores actuales de la configuración.

Una ves que encontrmos el archivo buscamos estos parametros y los cambiamos
[code]
;Esta Opcion debe estar en On para permitir el upload de archivos
file_uploads = On;

;Aqui especificamos el limite
upload_max_filesize = 50M

;Como los archivos se mandan por POST tambien debemos modificar este parametro
post_max_size = 50M
[/code]

PARA QUE ESTA CONFIGURACION SE APLIQUE ES NECESARIO REINICIAR EL SERVICIO httpd o el IIS DEPENDIENDO DE NUESTRO OS.

2.-CAMBIAR LA CONFIGURACION EN EL ARCHIVO .htaccess
Agregamos estos …

PHP Snippet weekday function

Mar 2008
13
256 views
1

Nativamente php no cuenta con una funcion para obtener el numero de dia de la semana de una fecha determinada, que por cierto necesitaba en este momento, asi que si alguien mas necesita esta funcion es libre de usarla.

Esta funcion regresa el numero del dia de la semana pasandole como parametro una fecha los valores que regresa son:

  • 0 Lunes
  • 1 Martes
  • 2 Miercoles
  • 3 Jueves
  • 4 Viernes
  • 5 Sabado
  • 6 Domingo
// ESTA FUNCION ACEPTA COMO PAREMETRO LA FECHA EN FORMATO
// DD/MM/YYYY
function weekday($fecha){
$fecha=str_replace("/","-",$fecha);
list($dia,$mes,$anio)=explode("-",$fecha);
return (((mktime ( 0, 0, 0, $mes, $dia, $anio) - mktime ( 0, 0, 0, 7, 17, 2006))/(60*60*24))+700000) % 7;
}
//LA PODEMOS PROBAR CON LA FECHA ACTUAL
echo weekday(date("d/m/Y"));

PHP snippet Sumar Tiempo a Fechas

Feb 2008
05
321 views
0

Con esta funcion cortesia de Titux podemos sumarle a una fecha dada ya sean dias,minutos,segundos y /o combinaciones de las mismas y obtenemos como resultado la nueva fecha

function dateadd($date, $dd=0, $mm=0, $yy=0, $hh=0, $mn=0, $ss=0){
$date_r = getdate(strtotime($date));
$date_result = date("m/d/Y h:i:s", mktime(($date_r["hours"]+$hh),($date_r["minutes"]+$mn),($date_r["seconds"]+$ss),($date_r["mon"]+$mm),($date_r["mday"]+$dd),($date_r["year"]+$yy)));
return $date_result;
}
$fecha = "02/04/2008"; //mes/dia/año
$fecha_actualizada = dateadd($fecha,1,0,0,0,0,0); // suma 1 dia a la fecha

Lo vi en :http://www.alterbrain.net/

Comado de linux para borrar un cd Rewritable

Feb 2008
02
236 views
0

Hoy tube un problemita con mi quemador tanto en windows como en linux, resulta que necesitaba quemar una delas imagenes del ,LMC(Linux media center)

pero mi quemador no me aceptaba el borrado asi que necesitaba el comando parra borrar un disco reescribicle y pues aqui se los dejo por si a alguien se le llega a ofrecer:

[code]
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force
[/code]

PHP snippet Mostrar imagenes en Random

Jan 2008
31
311 views
0

Generar imagenes aleatorias no es tan dificil como suena y pues esto es gracias a la funcion shuffle() de PHP, la cual toma un array y reordena los indices de un array.

Veamos como funciona:

//CREAMOS UN ARRAY
$imagenes=array();

//AGREGAMOS ITEMS AL ARRAY
$imagenes[]='<img src='imagen1.gif' alt='imagen1' title='imagen1' />';
$imagenes[]='<img src='imagen2.gif' alt='imagen2' title='imagen2' />';
$imagenes[]='<img src='imagen3.gif' alt='imagen3' title='imagen3' />';
$imagenes[]='<img src='imagen4.gif' alt='imagen4' title='imagen4' />';
$imagenes[]='<img src='imagen5.gif' alt='imagen5' title='imagen5' />';

//AHORA SIMPLEMENTE INVOCAMOS LA FUNCION shuffle()
shuffle($imagenes);

//Y LISTA LAS IMAGENES YA ESTAN EN UN ORDEN DIFERENTE AL QUE LAS REGISTRAMOS:
//AHORA YA DEPENDE DE TU IMAGINACION QUE HACER CON ELLAS
//PERO BUENO AQUI PONGO EL CODIGO PARA DESPLEGAR LA IMAGEN ASIGNADA ALEATORIAMENTE
echo $imagenes[0];

De nuevo espero les sea de utilidad.

Dudas y reclamaciones: favor de dejar el comentario.

EOT

MySQL Snippet MySQL OVER SSH

Jan 2008
30
262 views
0

Un tunel es un forma de reenviar datos de un puerto remoto a un puerto local , la ventaja de utilizar SSH es que todos los datos que pasen por el tunel estan protegidos fuertemente, esta es la manera mas segura de transportar datos en este tipo de Base de datos (MySQL).

Para crear un tunel ejecutar en consola:

[code] ssh -p7822 -fNg -L 3307:127.0.0.1:3306 usuario@host[/code]

Links Relacionados

Jan 2008
28
313 views
0

PHP Snippet Deshabilitar el cache del Explorador

Jan 2008
28
313 views
0

Primero que nada,¿que demonios es el CACHE?, no no me refiero a ser de etiqueta a muy “nice”, sino a que cada ves que el explorador, digase Internet explorer,Firefox,Opera,Safari o cualquier otro, muestra una página guarda el contenido para que la proxima ves que visitemos esta página se cargue mas rapido, osea que en ocaciones no se obtiene la versión mas receinte del archivo, esto se puede evitar configurando el explorador pero seamos honestos, ¿cual es el porcentaje de usuarios que saben hacer esto?, por eso nosotros como desarrolladores somos los responsables de que esto suceda y para hacerlo en php yo utilizo la siguiente función. Ok ok ya se fue mucho rollo pero tenia que explicarlo.

Función para …

PHP Snippet Convertir fechas entre MySQL y castellano

Jan 2008
23
470 views
0

Normalmente recibimos las fechas que vamos a guardar en formato dd/mm/yyyy pero en mysql las guardamos en formato yyyy/mm/dd
asi que sin mas aqui les dejo la manera practica que el jegs encontro para hacer la conversion

function parse_date($fecha){
    list($dia,$mes,$anio)=explode("/",$fecha);
    $fecha="$anio-$mes-$dia";
    return $fecha
}

Y asi de facil podemos convertir las fechas que recibimos en formato mysql ahora vamos a la inversa formatear la fecha de regreso de Mysql a PHP
la consulta quedaria asi

$qry="SELECT DATE_FORMAT(el_campocon_la_fecha,'%d/%m/%Y') as el_campo_con_la_fecha FROM latabla";
$res=mysql_query($qry);

Y listo ya podemos convertir las fechas entre MySQL y PHP a nuestro gusto.
Espero les sea util

Mas visitados

My Flickr

diseño web sti professinal consulting
Holly dollar baby
halftone background
varsion 1.0 del mi sitio
holly cojin rojo
urban 2
urban
dont panic 1 para psp
Deja tu comentario