Rent A Coder

Función Thumb

Imprimir Imprimir - Enviar a un amigo Enviar a un amigo
12345 (No calificado)
Loading ... Loading ...

Bueno, ando probando cosas en el blog, y ahora será el coloreado de sintaxis de código. Esta es una funcion que hice hace tiempo y que sirve para redimensionar una imagen proporcionalmente. Su modo de uso es bastante sencillo, consta de 5 parametros, dos de ellos opcionales:

$img - La imagen a redimensionar (string)
$w - El ancho máximo (int)
$h - La altura máxima (int)
$fill - Si la imagen es mas chica, ¿se agranda al tamaño máximo (true, por defecto)? (boolean/opcional)
$save - ¿Guarda la imagen (true) o la muestra en el navegador (false, por defecto)? (boolean/opcional)

Ademas, cuando el 5º parámetro se pone en true (es decir, que la imagen se guarde en lugar de mostrarse), devuelve un arreglo que consiste en el nombre del thumbnail y sus medidas (ancho y alto).

list($thumbnail, $ancho, $alto) = thumb("imagen.jpg", 300, 300, true, true);
<?php
function thumb($img, $w, $h, $fill = true, $save = false) {
	if (!extension_loaded('gd') && !extension_loaded('gd2')) {
		trigger_error("No dispones de la libreria GD para generar la imagen.", E_USER_WARNING);
		return false;
	}

	$imgInfo = getimagesize($img);
	switch ($imgInfo[2]) {
		case 1: $im = imagecreatefromgif($img); break;
		case 2: $im = imagecreatefromjpeg($img);  break;
		case 3: $im = imagecreatefrompng($img); break;
		default:  trigger_error('Tipo de imagen no reconocido.', E_USER_WARNING);  break;
	}

	//Esta parte donde se sacan las medidas esta tomada de http://php-hispano.net/archivos/Funciones/170/1
	if ($imgInfo[0] <= $w && $imgInfo[1] <= $h && !$fill) {
		$nHeight = $imgInfo[1];
		$nWidth = $imgInfo[0];
	}else{
		if ($w/$imgInfo[0] < $h/$imgInfo[1]) {
			$nWidth = $w;
			$nHeight = $imgInfo[1]*($w/$imgInfo[0]);
		}else{
			$nWidth = $imgInfo[0]*($h/$imgInfo[1]);
			$nHeight = $h;
		}
	}

	$nWidth = round($nWidth);
	$nHeight = round($nHeight);

	$newImg = imagecreatetruecolor($nWidth, $nHeight);

	imagecopyresampled($newImg, $im, 0, 0, 0, 0, $nWidth, $nHeight, $imgInfo[0], $imgInfo[1]);

	if ($save === true) {
		$name = array_shift(explode(".", $img, 2)).".th.".strtolower(array_pop(explode(".", $img)));

		if (!file_exists($name)) {
			switch ($imgInfo[2]) {
				case 1: imagegif($newImg, $name); break;
				case 2: imagejpeg($newImg, $name);  break;
				case 3: imagepng($newImg, $name); break;
				default:  trigger_error('Imposible mostrar la imagen.', E_USER_WARNING);  break;
			}
		}
		return array($name, $nWidth, $nHeight);
	}else{
		header("Content-type: ". $imgInfo['mime']);

		switch ($imgInfo[2]) {
			case 1: imagegif($newImg); break;
			case 2: imagejpeg($newImg);  break;
			case 3: imagepng($newImg); break;
			default:  trigger_error('Imposible mostrar la imagen.', E_USER_WARNING);  break;
		}

		imagedestroy($newImg);
	}
}
?>

Antes de ponerla aqui le hice unas modificaciones, espero aun sirva xD

Comenzando..

Imprimir Imprimir - Enviar a un amigo Enviar a un amigo
12345 (No calificado)
Loading ... Loading ...

Bueno, pues veamos que sale ahora.. puse esto de nuevo principalmente para probar algunas cosas que tengo en mente, pero pues espero ahora no dejarlo abandonado y poner cosas que realmente puedan interesar.

En fin, ahorita seguiré moviendole y a ver en que queda :P

Jaa ne~

Google: SoC

Imprimir Imprimir - Enviar a un amigo Enviar a un amigo
12345 (No calificado)
Loading ... Loading ...

Argh, por fin encuentro una mala razón para no estar estudiando: no puedo participar en el Google Summer of Code. Viendo los proyectos que hay, solo podría participar en aquellos que usen php, y entre ellos estaba viendo la to-do list de Coppermine Gallery.. muchas cosas de las que hay ahí estoy seguro que podría hacerlas u_u..

  • Text on images (True Type)
  • Documentation for newly-added watermarking feature
  • i18n of installer
  • Add rel=nofollow to the links that can be created by users in bbcode
  • log in with email address instead of password
  • Delete files older than XXX days to save webspace
  • Textarea in util.php to let user enter any query (similar to phpMyAdmin)
  • Set “Visitors can upload files” to yes for all albums at once
  • option to export albums/galeries/categories to an HTML album
  • RSS feed
  • New - since last visit icon
  • etc

Ains.. se veía tan interesante T-T.. y con eso de que dan USD $5000 (4500 para el estudiante, 500 para la organización) por proyecto, pues saldría bastante bien xD.. aun si en este caso varias contaran como uno solo por su simplicidad.

Lástima, pero no importa xD.. me serviría para distraerme, pero si funciona lo que estoy planeando hacer, entonces no tendría tiempo para eso. Igual en estos días veré si puedo hacer algo para la Coppermine Gallery.. siempre he querido colaborar en algún proyecto open source, y creo que esta sería una buena oportunidad.

C’ya!

Denny Crane Rlz

Imprimir Imprimir - Enviar a un amigo Enviar a un amigo
12345 (No calificado)
Loading ... Loading ...

El viernes vi un episodio de Boston Legal que no había visto, y hubo una parte que me hizo morir de risa, y es esta:

Denny: Brad. I really couldn’t have fired you by myself.
Brad: Yes, you could have.
Denny: Yes, I could have. But sometimes people say things they don’t really mean. Like, “I love you.” Or “You’re fired.” So. I really want you to stay with the firm. While everyone was whining about Bev, you were actually trying to take her out. I admire that. You have very large testicles, my friend.
Brad: Well. Thank you, Denny, I’m flattered you have that opinion of me.
Denny: It’s not my opinion. I saw you in the shower at the gym. Good God!

Aun no puedo dejar de reir xDDDD

Nuevo Theme

Imprimir Imprimir - Enviar a un amigo Enviar a un amigo
12345 (No calificado)
Loading ... Loading ...

Pues eso o.o

Página 8 de 25« Primera...«678910»...Última »