Foros del Web » Programando para Internet » PHP »

redimensionar imagen

Estas en el tema de redimensionar imagen en el foro de PHP en Foros del Web. que tal: les cuento mi problema. Tengo una base de datos que guarda una ruta de imagen ej: <IMG alt="" hspace=0 src="dominio.com/imagen/prueba.jpg" align=baseline border=0> y ...
  #1 (permalink)  
Antiguo 27/10/2005, 09:25
Avatar de splashman  
Fecha de Ingreso: julio-2002
Ubicación: Super lejos
Mensajes: 364
Antigüedad: 21 años, 9 meses
Puntos: 1
redimensionar imagen

que tal:

les cuento mi problema.

Tengo una base de datos que guarda una ruta de imagen ej:
<IMG alt="" hspace=0 src="dominio.com/imagen/prueba.jpg" align=baseline border=0>

y estas se guardan de forma dinamica, ya que puede variar el nombre pero no el tamaño ya que puede ser de 640x480 pero yo necesito mostrar la misma imagen en un tamaño de 200x150 y ahi salta mi gran problema ya que se guarda la dirección completa como el codigo que esta mas arriba...

como puedo mostrar la misma imagen pero con el tamaño 200x150??? hay alguna forma de solo capturar la url exacta de la imagen y luego redimensionarla???

Espero sus ayuda
__________________
Cada dia se aprende algo nuevo
  #2 (permalink)  
Antiguo 27/10/2005, 09:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa las FAQ's de este foro PHP (o usa el buscador del foro) por: "thumbnails" ahí veras muchos ejemplos ...

Se basan en el uso de las librerías GD (vía extensión correspondiente www.php.net/gd) de PHP, las cuales debes tener instaladas en tu servidor (verificalo haciendo un phpinfo() )

Un saludo,
  #3 (permalink)  
Antiguo 27/10/2005, 09:37
Avatar de splashman  
Fecha de Ingreso: julio-2002
Ubicación: Super lejos
Mensajes: 364
Antigüedad: 21 años, 9 meses
Puntos: 1
si busque, pero no me refiero a eso, ya que deseo mostrar la misma imagen pero con proporción, es decir hachicandola con el alto y ancho
__________________
Cada dia se aprende algo nuevo
  #4 (permalink)  
Antiguo 27/10/2005, 09:43
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 9 meses
Puntos: 125
yo te entiendo... podrias hacer un SUBSTR entre StrinG---
buscar pòr ejemplo con un inicio 'scr="' y con un fin '"' asi obtendrías la URL de la IMG..

toy cachando...!! algunas FUNC!
  #5 (permalink)  
Antiguo 27/10/2005, 09:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por splashman
si busque, pero no me refiero a eso, ya que deseo mostrar la misma imagen pero con proporción, es decir hachicandola con el alto y ancho
Pues eso lo que hacen los ejemplos que te comenté .. eso sí .. algunos lo hacen automático para todo un directorio con imagenes .. toma la parte de la función o método que haga tu redimiensionado y listo.

Tendrás que hacerte un script que pase por este (que generará tu imagen nueva con esas dimiensiones).

Ejemplo .. esta función de las FAQ's lo hace:
http://www.forosdelweb.com/showthrea...620#post282620

Ese ejemplo genera la imagen redimensionada en un archivo .. pero también puedes modificar un poco el código para generar "al vuelo" esa imagen redimensionada .. Por supuesto te falta el script que tome ese parámetro por ejemplo:

genera_reduceimagen.php?imagen=nose.jpg

Código PHP:
<?
// la función de esa FAQ

function thumbjpeg($imagen,$altura){
// el código ...
}

thumbjpeg($_GET['imagen'],100);
?>

Un saludo,
  #6 (permalink)  
Antiguo 27/10/2005, 09:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Un detalle .. en tu campo "imagen" de tu BD .. guardas literalmente:

<IMG alt="" hspace=0 src="dominio.com/imagen/prueba.jpg" align=baseline border=0>

o sólo
dominio.com/imagen/prueba.jpg

ó incluso sólo:
prueba.jpg

Un saludo,
  #7 (permalink)  
Antiguo 27/10/2005, 09:57
Avatar de splashman  
Fecha de Ingreso: julio-2002
Ubicación: Super lejos
Mensajes: 364
Antigüedad: 21 años, 9 meses
Puntos: 1
completo el codigo:

<IMG alt="" hspace=0 src="dominio.com/imagen/prueba.jpg" align=baseline border=0>

el problema es que cada registro tiene una imagen distinta dependiendo de la información guardada
__________________
Cada dia se aprende algo nuevo
  #8 (permalink)  
Antiguo 27/10/2005, 10:07
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 9 meses
Puntos: 125
Código PHP:
function getFilename$file$extension true ) {
   return (
$extension || false === $dot strrposbasename$file ), '"' ))
       ? 
basename$file ) : substrbasename$file ), 0$dot );
}
$cadena '<IMG alt="" hspace=0 src="dominio.com/imagen/pruebaas.jpg" align=baseline border=0>';
$new strrchr($cadena,'/');

echo 
getFilename$newfalse ); 
  #9 (permalink)  
Antiguo 27/10/2005, 10:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por splashman
completo el codigo:

<IMG alt="" hspace=0 src="dominio.com/imagen/prueba.jpg" align=baseline border=0>

el problema es que cada registro tiene una imagen distinta dependiendo de la información guardada
buff .. bueno .. (tu veras por qué las almacenas así) ...

Lo primero que debes hacer es quedarte con la ruta sólo de esa imagen .. algo como lo que te comentó: skatomundo

Despues, .. supongo que pretendes usar ese código tal cual pero con tu imagen redimensionada .. Bien, si es así, tendrás que sustituir de esa cadena (a la hora de que la uses) ese nombre de imagen por el que vas a generar con la función que te indiqué .. por ejemplo "thum_prueba.jpg" .. y así usarlo.

De hecho . no sé que haces exactamente tu aplicación .. pero me imagino que tendrás que revisar si ya existe tu imagen de nombre "thum_xxxx.xxx" para no generalo cada vez que pidas esa imagen o generarlo si corresponde (un "is_file()" podría ayudarte una vez obtenido el nombre de tu imagen y añadido el "prefijo" que le vas a dar si corresponde crear tu "thumbnail".

Como veras es mucho "lio" .. tal vez sería bueno replantear algunas cosas. Por ejemplo como guardas esas imagenes (no guardando el HTML a ser posible), si las imagenes las subes por scripts tuyos (PHP de "upload") .. mejor generar la imagen redimensionada cuando sube la imagen (en ese instante) y así usar una u otra imagen según necesites con sólo "anadir" ese pre-fijo al nombre de tu imagen a la hora de que "insertes" una imagen. En fin ... si describes tu aplicación y como funciona para este caso concreto tal vez salgan mejores propuestas para hacer lo que tiene que hacer.

Un saludo,
  #10 (permalink)  
Antiguo 27/10/2005, 10:11
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 9 meses
Puntos: 125
La func. anterior...si tu "dominio.com/imagen/" de principio no varia..
porque solo obtiene el nombre de la imagen..
si varia habria que modificar..
  #11 (permalink)  
Antiguo 27/10/2005, 10:17
Avatar de splashman  
Fecha de Ingreso: julio-2002
Ubicación: Super lejos
Mensajes: 364
Antigüedad: 21 años, 9 meses
Puntos: 1
la aplicación esta montada en una empresa que sube sus propios comentarios y lo hago todo por FCKeditor por el solo hecho de que son personas que ni siquiera saben usar el paint, entonces no se le puede hacer complicada la vida.
__________________
Cada dia se aprende algo nuevo
  #12 (permalink)  
Antiguo 27/10/2005, 10:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por splashman
la aplicación esta montada en una empresa que sube sus propios comentarios y lo hago todo por FCKeditor por el solo hecho de que son personas que ni siquiera saben usar el paint, entonces no se le puede hacer complicada la vida.
Ok .. todo eso es válido ..

En ese caso tu lo que almacenas en tu cuerpo del "comentario" es el HTML completo incluido las referencias de esas imagenes .. En ese caso, vía expresiones regulares te sería mejor obtener las imagenes para aplicarles el proceso de generación de la imagen redimensionada, con eso obtendrías los "thumbnails" de esas imagenes o simplemente las redimensionas y las guardas con el mismo nombre (perdiendo el original? .. eso ahí lo decidira tu).

Por otro lado .. cuando tu usas tu "FCKeditor" .. tienes un módulo que por el subes las imagenes al servidor y de ahí genera el HTML con el vinculo de la imagen apuntando al servidor ..por ende, ahí tienes un script PHP ya corriendo (que toma la imagen y la hubica en el servidor) donde puedes aplicar este proceso de generarción de tu redimiensionado según sube la imagen .. es más, si no requieres de la imagen original y el objetivo final es que las imagenes no superen cierto tamaño/peso por restricción .. puedes hacer el "by-pass" usando la función que te presenté de las FAQ's en ese proceso.

Un saludo,
  #13 (permalink)  
Antiguo 27/10/2005, 10:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

No sé si servirá de algo, pero en este mensaje puse el código que yo uso: http://www.forosdelweb.com/f18/redimencionar-imagen-mas-pequena-236597/

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #14 (permalink)  
Antiguo 27/10/2005, 14:21
Avatar de splashman  
Fecha de Ingreso: julio-2002
Ubicación: Super lejos
Mensajes: 364
Antigüedad: 21 años, 9 meses
Puntos: 1
ya me funciono...

aca dejo el codigo del script

<?php
$buscar = "align=baseline border=0>";
$reemplazar = "align=baseline border=0 width=90 height=56>";
$cadena1 = ($row_noticias['foto_portada']);
$cadena1 = eregi_replace($buscar, $reemplazar, $cadena1);
echo "$cadena1";
?>

Gracias a todos los que me ayudaron

Salu2
__________________
Cada dia se aprende algo nuevo
  #15 (permalink)  
Antiguo 27/10/2005, 14:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por splashman
ya me funciono...

aca dejo el codigo del script

<?php
$buscar = "align=baseline border=0>";
$reemplazar = "align=baseline border=0 width=90 height=56>";
$cadena1 = ($row_noticias['foto_portada']);
$cadena1 = eregi_replace($buscar, $reemplazar, $cadena1);
echo "$cadena1";
?>

Gracias a todos los que me ayudaron

Salu2
Pero ... te fijas que ahí tan sólo estás forzando a tu navegador a que "presente" esa imagen con ese tamañó y que -realmente- tu imagen pesa lo mismo que a tamaño original con lo que ello conlleva: más tiempo de descarga de esas imagenes y peor calidad en el proceso de re-escalado.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:25.