Autor
|
Tema: como hacer tumbs de imagenes en php (Leído 4,391 veces)
|
antoni_anemi
Desconectado
Mensajes: 4
|
NECESITO AYUDA ESTOY HACIENDO UN PROGRAMA EN PHP QUE CREE IMAGENES TUMBS Y QUE LOS GUARDE EN UN DIRECTORIO ME HACE TODO ME CREA EL DIRECTORIO Y LA IMAGEN TUMBS PERO SOLO ME CREA UNA IMAGEN EN NEGRO NO ME COPIA LA IMAGEN ORIGINAL ESTE ES MI CODIGO OJALA ME PUEDAN AYUDAR
<?php /** * @author antonio de jesus cortes lagunes * @copyright 2012 * este es puro codigo php si desea verlo en el explorador tienes que meterlo en codigo html y * ademas debes tener instalado php para que pueda ser interpretado. * * Ejercicio 4.10: ídem al anterior, pero que si no existe la miniatura de una foto debe de crearla. * VERSION PARA WINDOWS * */
echo "<h1>Galeria de imagenes con thumbnails</h1>";
function png($foto){ if (!is_dir('fotos/tumbs')){ mkdir ('fotos/tumbs', 0777); } header('Content-Type: image/gif'); $fuente = @imagecreatefrompng($foto); $imgAncho = imagesx ($fuente); $imgAlto =imagesy($fuente); $imagen = imagecreatetruecolor(50,50);
imagecopyresampled($imagen,$fuente,0,0,0,0,50,50,$imgAncho,$imgAlto);
imageGif($imagen,"fotos/tumbs/MINI-$foto"); }
function jpg($foto){ if (!is_dir('fotos/tumbs')){ mkdir ('fotos/tumbs', 0777); } header('Content-Type: image/jpeg'); $fuente = @imagecreatefromjpeg($foto); $imgAncho = imagesx($fuente); $imgAlto =imagesy($fuente); $imagen = imagecreatetruecolor(50,50);
imagecopyresampled($imagen,$fuente,0,0,0,0,100,100,$imgAncho,$imgAlto);
imagejpeg($imagen,"fotos/tumbs/MINI-$foto"); }
function gif($foto){ if (!is_dir('fotos/tumbs')){ mkdir ('fotos/tumbs', 0777); } header('Content-Type: image/gif'); $fuente = @imagecreatefromgif($foto); $imgAncho = imagesx ($fuente); $imgAlto =imagesy($fuente); $imagen = imagecreatetruecolor(50,50);
imagecopyresampled($imagen,$fuente,0,0,0,0,50,50,$imgAncho,$imgAlto);
imageGif($imagen,"fotos/tumbs/MINI-$foto"); }
function valida_foto($fotos) { $rdo=0; if (ereg("[Jj][Pp][Gg]$", $fotos)) { $rdo=1; jpg($fotos); } if (ereg("[Gg][Ii][Ff]$", $fotos)) { $rdo=1; gif($fotos); } if (ereg("[Pp][Nn][Gg]$", $fotos)){ $rdo=1; png($fotos); } if (ereg("[Bb][Mm][Pp]$", $fotos)) { $rdo=1; bmp($fotos); } return $rdo; }
echo "<table border=1>"; $puntero = opendir('fotos'); $i=1; while (false !== ($foto = readdir($puntero))) { if ($foto!="." && $foto!=".." && valida_foto($foto)) {
if ($i==1) echo "<tr>"; echo "<td><a href='fotos/tumbs/MINI-$foto'>"; echo "<img src='fotos/$foto' width=100 height=100></img>";
echo "</a></td>"; if ($i==4) {echo "</tr>"; $i=0;} $i++; } } closedir($puntero); echo "</table>";
?>
|
|
|
En línea
|
|
|
|
#!drvy
|
Hola Para empezar.... no uses ereg. Es una función marcada como obsoleta a partir de PHP 5.3. Te recomiendo que uses preg_match. Total, POSIX ERE y PCRE son muy similares.. veras que es fácil. Otro problema que tienes, es que defines los headers. No hace falta definir los. Y es que, imprimes un echo antes de definir el header (incluso aunque lo hagas después estaría mal...) y eso entra en conflicto pues el navegador primero mira el header y luego el contenido. El problema principal es que, en las funciones (jpg,bmp,gif,png).. no indicas donde se encuentra la foto original. Solo indicas su nombre. Por tanto, al intentar abrir la foto, PHP busca en el directorio donde esta alojado el script y no en la carpeta fotos. function jpg($foto){ if (!is_dir('fotos/tumbs')){mkdir ('fotos/tumbs', 0777);} }
Te dejo a continuación el código funcional. <?php /** * @author antonio de jesus cortes lagunes * @copyright 2012 * este es puro codigo php si desea verlo en el explorador tienes que meterlo en codigo html y * ademas debes tener instalado php para que pueda ser interpretado. * * Ejercicio 4.10: ídem al anterior, pero que si no existe la miniatura de una foto debe de crearla. * VERSION PARA WINDOWS * */ echo "<h1>Galeria de imagenes con thumbnails</h1>"; function png($foto){ if (!is_dir('fotos/tumbs')){mkdir ('fotos/tumbs', 0777);} imageGif($imagen,"fotos/tumbs/MINI-$foto"); } function jpg($foto){ if (!is_dir('fotos/tumbs')){mkdir ('fotos/tumbs', 0777);} } function gif($foto){ if (!is_dir('fotos/tumbs')){mkdir ('fotos/tumbs', 0777);} imageGif($imagen,"fotos/tumbs/MINI-$foto"); } function valida_foto($fotos){ $rdo=0; $rdo=1; jpg($fotos); } $rdo=1; gif($fotos); } $rdo=1; png($fotos); } $rdo=1; bmp($fotos); } return $rdo; } echo "<table border=1>"; $i=1; while (false !== ($foto = readdir($puntero))){ if ($foto!="." && $foto!=".." && valida_foto($foto)){ if ($i==1){ echo "<tr>"; echo "<td><a href='fotos/tumbs/MINI-$foto'>"; echo "<img src='fotos/$foto' width=100 height=100></img>"; echo "</a></td>"; if ($i==4){echo "</tr>"; $i=0;} $i++; } } } echo "</table>"; ?>
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como hacer tratado de imagenes por lotes
Diseño Gráfico
|
[.:: NauJFracT ::.]
|
4
|
2,923
|
6 Mayo 2004, 14:54 pm
por Morris
|
|
|
como hacer que las imágenes ocupen poquíssimo? es para 1tutorial. ayuda.
Diseño Gráfico
|
nichihack
|
5
|
4,237
|
10 Febrero 2005, 21:07 pm
por nichihack
|
|
|
[MOD] como hacer presentaciones de imagenes y videos??
Multimedia
|
M4uR0
|
3
|
2,731
|
26 Agosto 2005, 02:25 am
por Thunder2k
|
|
|
¿Cómo hacer imágenes interactivas?
Diseño Gráfico
|
Fireball-CH
|
7
|
9,845
|
21 Enero 2008, 19:54 pm
por Fireball-CH
|
|
|
como acceder a mis imagenes y mover imagenes a una carpeta en C:\
Programación Visual Basic
|
ricardovinzo
|
3
|
6,282
|
9 Junio 2008, 00:03 am
por seba123neo
|
|