Código PHP:
function fun_resizejpg($imgsrc,$imgnew,$newx,$newy,$quality){
if( file_exists($imgsrc) ) {
list($srcx,$srcy,$ext) = getimagesize($imgsrc);
switch( $ext) {
case 1 :
$old = imagecreatefromgif($imgsrc);
$img = imagecreate($srcx,$srcy);
imagecolorallocate($img, 255, 255, 255);
imagecopy($img,$old,0,0,0,0,$srcx,$srcy);
break;
case 2 :
$img = imagecreatefromjpeg($imgsrc);
break;
case 3 :
$img = imagecreatefrompng($imgsrc);
break;
case 6:
$img = imagecreatefromwbmp($imgsrc);
break;
default:
print_r(getimagesize($imgsrc));
return false; }
$tamx=$srcx;
$tamy=$srcy;
if($srcx>$newx)
$pv=($srcx>$srcy)?$srcx/$newx:$srcy/$newy;
elseif($srcy>$newy)
$pv=($srcy>$srcx)?$srcy/$newy:$srcx/$newx;
if(isset($pv)){
$srcx=ceil($srcx/$pv);
$srcy=ceil($srcy/$pv); }
$new = imagecreatetruecolor ($srcx, $srcy);
imagecopyresampled ($new, $img, 0, 0, 0, 0, $srcx, $srcy, $tamx, $tamy);
imagejpeg($new,(substr($imgnew,0,strrpos($imgnew,"."))).".jpg",$quality);
imagedestroy($img);
return true;
}
else
return false;
}
$imgsrc= $imagen; //url de la imagen a escalar
$imgnew= $imagen; //url de la imagen escalada
$ancho=getimagesize($imgsrc);
$factor=400/$ancho[0]; //las escala a 400px de ancho conservando las proporciones
$newx=$ancho[0]*$factor;
$newy=$ancho[1]*$factor;
$quality=80;
fun_resizejpg($imgsrc,$imgnew,$newx,$newy,$quality);
simplemente le paso la url. Tiene que haber alguna forma de reescalar a nivel de mostrar en la web sin modificar la imagen del servidorm eso seria genial