Comunidad de diseño web y desarrollo en internet online

Thumbnail desde BD con una unica foto

Citar            
MensajeEscrito el 31 Mar 2007 07:59 pm
Buenas.
Desarrollo el sitio www.autocasionextremadura.com

En mi WEB tengo una única foto por coche y está en un Blob :

Se me ocurre:
1- Cuando doy de alta una ficha, que el script dimensione dos fotos: una grande y una pequeña desde la misma fuente ... y arreglado. Pero ahora no puedo reconstruir todo

2- Lo que estoy intentando ahora.
Por un lado: cuando se consulta una referencia y no hay foto:

"if ($im == false) {
header('Content-type: image/jpeg');
$nofoto='images/no.jpg';
// Se obtienen las nuevas dimensiones
$percent = 0.3750;
list($width, $height) = getimagesize($nofoto);
$newwidth = $width * $percent;
$newheight = $height * $percent;
$thumb = imagecreate($newwidth, $newheight);
$source = imagecreatefromjpeg($nofoto);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumb);
exit();}"
Esto es facil: estoy tomando una foto del dominio: http://www.autocasionextremadura.com/images/no.jpg


Ahora el problema: si hay foto:

if ($im !== false) {
header('Content-type: image/jpeg');
imagejpeg($im);
//$im=ImageJpeg($im);
// Se obtienen las nuevas dimensiones
$percent = 0.3750;
list($width, $height) = getimagesize($im);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Cargar la imagen
$thumb = imagecreate($newwidth, $newheight);
$source = imagecreatefromjpeg($im);
// Redimensionar
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Mostrar la nueva imagen
ImageJpeg($thumb);
exit(); } No me está funcionando.

El planteamiento de imagecopyresized() es tomar un archivo y procesarlo.
Se puede producir un archivo en el servidor, procesarlo, mostrarlo y eliminarlo.
¿Se puede trabajar con el stream binario y lograr l mismo resultado?
Basicamente, solicito orientacion para lograr hacer funcionar ese segundo condicional.


Un saludo.

Por pepeitor

25 de clabLevel



 

buscarme la vida

firefox
Citar            
MensajeEscrito el 01 Abr 2007 02:26 am
Corcho!!
Los archivos de trabajo son estos:
http://www.autocasionextremadura.com/gd.php : se corresponde con el primer condicional (cuando no hay foto en el Blob)
http://www.autocasionextremadura.com/vergd.php : basta pasar una variable que exista por url.

Creo que lo mas adecuado es modificar la tabla en BD e insertar foto completa (480x al 80%) y thumb (120x al 40%) y modoficar todas las paginaciones. Pero necesito leer las opiniones de quienes tengan mas experiencia.......

Espero.

Por pepeitor

25 de clabLevel



 

buscarme la vida

firefox
Citar            
MensajeEscrito el 01 Abr 2007 10:56 pm
SOLUCIONADO.
<?php
#establecemos los factores de ampliación de la imagen
$amplia=0.375;
Header("Content-type:image/jpeg");
#importamos la imagen extraida de la tabla
$importada=imagecreatefromstring($row["foto"]);
#determinamos las dimensiones de la imagen
$orig_Ancho= imagesx($importada);
$orig_Alto= imagesY($importada);
#determinamos el ancho ye alto de la porción de imagen encuadrada
$nuevo_Alto=$orig_Alto-$recorte_superior-$recorte_inferior;
$nuevo_Ancho=$orig_Ancho-$recorte_izquierdo-$recorte_derecho;
#determinamos el ancho ye alto de la imagen ampliada
$nuevo_AnchoA=$nuevo_Ancho*$amplia;
$nuevo_AltoA=$nuevo_Alto*$amplia;
#creamos la nueva imagen con las dimensiones de la imagen ampliada
$im_base=imagecreatetruecolor($nuevo_AnchoA,$nuevo_AltoA);
# superponemos la imagen original (encuadrada y ampliada)
# a la imagen que acabamos de crear
imagecopyresampled($im_base,$importada,0,0,0,0,$nuevo_AnchoA, $nuevo_AltoA,$nuevo_Ancho, $nuevo_Alto);
# visualizamos la imagen
imagejpeg($im_base,null,50);
ImageDestroy();
exit();
?>

Por pepeitor

25 de clabLevel



 

buscarme la vida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.