Ayuda para redimensionar una imagen si me sirve no se adaptarlo.

  • Autor Autor ggber
  • Fecha de inicio Fecha de inicio
ggber

ggber

Delta
Verificación en dos pasos activada
Hola foreros bueno requiero de su necesaria ayuda, tengo el siguiente PHP que me redimensiona las imagenes a un tamaño de 100x100 ahora lo que requiero es adaptarlo a mi programación normal donde suben imagenes con un titulo, etc. Pero no logro integrar el redimensionar alguién me pueda dar una mano.

Insertar CODE, HTML o PHP:
<?php
function urls_amigables($url) { 

// Tranformamos todo a minusculas 

$url = strtolower($url); 

//Rememplazamos caracteres especiales latinos 

$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ'); 
$repl = array('a', 'e', 'i', 'o', 'u', 'n'); 
$url = str_replace ($find, $repl, $url); 

// Añaadimos los guiones 

$find = array(' ', '&', '\r\n', '\n', '+'); 
$url = str_replace ($find, '-', $url); 

// Eliminamos y Reemplazamos demás caracteres especiales 

$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'); 
$repl = array('', '-', ''); 
$url = preg_replace ($find, $repl, $url); 
return $url; 
}

//makeThumb('06.jpg');
function makeThumb( $filename , $thumbSize=100 ){
	global $max_width, $max_height;

	$srcFile = $filename;
	$thumbFile = 'th_'.$filename;

	$type = substr( $filename , strrpos( $filename , '.' )+1 );
	switch( $type ){
		case 'jpg' : case 'jpeg' :
			$src = imagecreatefromjpeg( $srcFile ); break;
		case 'png' :
			$src = imagecreatefrompng( $srcFile ); break;
		case 'gif' :
			$src = imagecreatefromgif( $srcFile ); break;
	}

	// Get dimensions of the src image.
	list($oldW, $oldH) = getimagesize($filename);

	// Work out what offset to use
	if ($oldH < $oldW) {
		$offH = 0;
		$offW = ($oldW-$oldH)/2;
		$oldW = $oldH;
	}elseif ($oldH > $oldW){
		$offW = 0;
		$offH = ($oldH-$oldW)/2;
		$oldH = $oldW;
	}else{
		$offW = 0;
		$offH = 0;
	}

	// Resample the image into the new dimensions.
	$new = imagecreatetruecolor(100, 100);
	imagecopyresampled($new, $src, 0, 0, $offW, $offH, 100, 100, $oldW, $oldH);
	switch( $type ){
		case 'jpg' : case 'jpeg' :
			$src = imagejpeg( $new , $thumbFile ); break;
		case 'png' :
			$src = imagepng( $new , $thumbFile ); break;
		case 'gif' :
			$src = imagegif( $new , $thumbFile ); break;
	}
	@imagedestroy( $new );
	@imagedestroy( $src );
}
?>
<?
if($_POST[enviar]) {
$amigable = urls_amigables($_POST[titulo]);
if($_FILES[imagen]) {
$name = $_FILES[imagen]['name'];      
$extension = explode(".",$name);
$extension = end($extension);
$nameImagen = "".$amigable."_mini.".$extension."";
$peso = $_FILES[imagen]['size'];  
$tmp  = $_FILES[imagen]['tmp_name'];  
$type = $_FILES[imagen]['type'];  
if(is_uploaded_file($tmp)) {
$extension = explode(".",$name);
$num = count($extension)-1;
$extension2 = $extension[$num];
move_uploaded_file($tmp, "".$nameImagen);
}
}
?><br />
<br />
Se publico correctamente :)<br />
<br />
<?
}
?>

<form name="form1" method="post" action="demo.php" enctype="multipart/form-data" onsubmit="return validacion()">
<input name="titulo" type="text" id="titulo" size="70"><br />
<input name="imagen" type="file" id="imagen" />
<br />
<input name="enviar" type="submit" class="button" id="enviar" value="Subir Imagen">
</form>
 
Juntando algunos codigos por ahii hice esto, es lo que necesitas?:

PHP:
<?php 
function cambiar_tamanio($ruta_imagen = '')
{
	$tipo = substr( $ruta_imagen , strrpos( $ruta_imagen , '.' )+1);

	if($tipo == 'jpeg')
	{
		$imagen_original = imagecreatefromjpeg($ruta_imagen);
	}elseif($tipo == 'jpg')
	{
		$imagen_original = imagecreatefromjpeg($ruta_imagen);
	}elseif($tipo == 'png')
	{
		$imagen_original = imagecreatefrompng($ruta_imagen);
	}elseif($tipo == 'gif')
	{
		$imagen_original = imagecreatefromgif($ruta_imagen);
	}
	
	$ancho_original = imagesx($imagen_original);
	$alto_original = imagesy($imagen_original);

	$ancho_final = 250; //ancho final de la imagen
	$alto_final = ($ancho_final / $ancho_original) * $alto_original; //alto final es proporcional al ancho de la imagen

	$imagen_redimensionada = imagecreatetruecolor($ancho_final, $alto_final);

	imagecopyresampled($imagen_redimensionada, $imagen_original, 0, 0, 0, 0, $ancho_final, $alto_final, $ancho_original, $alto_original);

	//Guardo la imagen ya redimensionada
	
	
	if($tipo == 'jpeg')
	{
		imagejpeg($imagen_redimensionada, 'th_'.$ruta_imagen);
		
	}elseif($tipo == 'jpg')
	{
		imagejpeg($imagen_redimensionada, 'th_'.$ruta_imagen);
	}elseif($tipo == 'png')
	{
		imagepng($imagen_redimensionada, 'th_'.$ruta_imagen);
	}elseif($tipo == 'gif')
	{
		imagegif($imagen_redimensionada, 'th_'.$ruta_imagen);
	}
	imagedestroy($imagen_original);
	imagedestroy($imagen_redimensionada);

		
	
}
    $status = '';
    if ($_POST['action'] == 'upload') {
        // obtenemos los datos del archivo
        $tamano = $_FILES['archivo']['size'];
        $tipo = $_FILES['archivo']['type'];
        $archivo = $_FILES['archivo']['name'];
        $prefijo = substr(md5(uniqid(rand())),0,6);
       
        if ($archivo != '') {
            $destino =  $prefijo.'_'.$archivo;
            if (copy($_FILES['archivo']['tmp_name'],$destino)) {
				cambiar_tamanio($prefijo.'_'.$archivo);
				if(file_exists('th_'.$prefijo.'_'.$archivo))
				{
					unlink($prefijo.'_'.$archivo); //comentar linea parar mantener ambos original y redimensionado
					$status = 'Archivo subido: <b>'.'th_'.$prefijo.'_'.$archivo.'</b>';
				}
			} else {
                $status = 'Error al subir el archivo';
            }
        } else {
            $status = 'Error al subir archivo';
        }
    }
	
	
	
	echo $status.'<br />';
?>


    <form action="" method="post" enctype="multipart/form-data">
      <input name="archivo" type="file" size="35" />
      <input name="enviar" type="submit" value="Upload File" />
      <input name="action" type="hidden" value="upload" />     
    </form>

Espero te sirva, saludos 😉
 
Cual es el objetivo de redimensionar la imagen?
Por que no usas timthumb?
 
Atrás
Arriba