Cita:
Iniciado por David
Puedes usar las funciones imagecreatefromjpeg() y imagejpeg() para hacerlo:
Y como lo incorporaria en este codigo?
Aqui realizo un cambio de tamaño.
pero no me lo optimiza.
se puede incorporar?
O debo de hacerlo en un segundo paso sobre los archivos de la carpeta destino $carpetanueva
Código PHP:
<?php
$carpeta = "../prueba01/"; // CARPETA DONDE SE ENCUENTRAN LOS ARCHIVOS
$carpetanueva = "../prueba02/"; // CARPETA DE DESTINO DE LOS ARCHIVOS
$ext = array("jpg"); // EXTENSION DE LOS ARCHIVOS DE IMAGENES
$ancho_nuevo = 640; // ANCHO NUEVO DEL ARCHIVO
///////////////////////////////////////////////////////////
if(is_dir($carpeta) && $dir = opendir($carpeta)){
while (($nombre_archivo = readdir($dir)) !== false){
$archivo = pathinfo($carpeta.$nombre_archivo);
if (in_array(strtolower($archivo['extension']),$ext))
{
if(strtolower($archivo['extension'])=="gif"){
$img = imagecreatefromgif($carpeta.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="jpg"){
$img = imagecreatefromjpeg($carpeta.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="png"){
$img = imagecreatefrompng($carpeta.$nombre_archivo);
}
$ancho = imagesx($img);
$altura = imagesy($img);
$ancho_nuevo = $ancho_nuevo;
$altura_nueva = floor($altura*($ancho_nuevo/$ancho));
$tmp_img = imagecreatetruecolor($ancho_nuevo,$altura_nueva);
imagecopyresized($tmp_img,$img,0,0,0,0,$ancho_nuevo,$altura_nueva,$ancho,$altura);
if(strtolower($archivo['extension'])=="gif"){
imagegif( $tmp_img,$carpetanueva.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="jpg"){
imagejpeg( $tmp_img,$carpetanueva.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="png"){
imagepng( $tmp_img,$carpetanueva.$nombre_archivo);
}
}
}
}
closedir($dir);
?>