Hola de nuevo, esta vez vengo con el famoso y trillado tema de las imagenes, estuve leyendo muchos temas aca, las faq, etc, pero no logro entender, en fin este es el problema, necesito crear thumbnails o por lo menos que la imagen al subrila se redimensione.
Las imagenes las subo a travez de este codigo:
Código PHP:
<?php
if (isset($_POST['submit'])) {
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";
}
}
// A continuación el formulario
}
?>
<form action="<?php echo $_SERVER['../admin/PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
Archivo: <input name="fichero" type="file">
<input name="submit" type="submit" value="Upload!">
</form>
estas imagenes van a servidor, las mismas las llamo a traves de la ruta que esta en la BD.
lo que no logro entender es como puedo crear el thumbnail de la imagen con la ruta nada mas.
con este codigo llamo a la tabla
Código PHP:
<?php
$conexion=mysql_connect("localhost","usuario","contraseña") or die ("no se ha podido conectar a la BD");
mysql_select_db("base de datos") or die ("no se ha podido seleccionar la BD");
$carro=$_SESSION['carro'];
$result = mysql_query("SELECT * FROM Inventario WHERE Lanzamientos LIKE '%si' ORDER BY Id DESC LIMIT 1");
while ($row = mysql_fetch_array($result)) {
echo "<div align='right'><img src='$row[7]' /></div><br />";
echo "<span class='Estilo31'>Artista: $row[1]</span><br><span class='Estilo31'>Título: $row[2]</span><br><span class='Estilo31'>Precio: $row[3]</span><br><span class='Estilo31'>Formato: $row[5]</span><br><br>";
if($carro[md5($row['Id'])]['identificador']!=md5($row['Id'])){
?>
el $row[7] es en dnd se encuentra las rutas de las imagenes.
en las FAQ, hay este codigo para crear los thumbnails
Código PHP:
<?php
function thumbjpeg($imagen,$altura) {
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
$dir_thumb = "thumbs/";
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
// el thumbnail se llamaría "tn_imagen1.jpg"
$prefijo_thumb = "tn_";
// Aquí tendremos el nombre de la imagen.
$nombre=basename($imagen);
// Aquí la ruta especificada para buscar la imagen.
$camino=dirname($imagen)."/";
// Intentamos crear el directorio de thumbnails, si no existiera previamente.
if (!file_exists($camino.$dir_thumb))
@mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);
// Aquí comprovamos que la imagen que queremos crear no exista previamente
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n";
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
// miramos el tamaño de la imagen original...
$datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");
// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);
// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);
// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
// voilà la salvamos con el nombre y en el lugar que nos interesa.
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
}
}
$imagen=$_GET['imagen'];
// cabeceras HTTP adecuadas al formato MIME del archivo ..
header ("content-type: image/jpeg");
thumbjpeg($imagen,$altura);
}
?>
lo que no comprendo es como a partir del codigo de las FAQ puedo crear estas miniaturas de las imagenes ya que estas estan en rutas y no son archivos binarios.
Si alguien sabe como hacerlo se lo agradeceria mucho que me ayudaran en esto.
Gracias y saludos