Resize PNG image in PHP

女生的网名这么多〃 提交于 2019-12-05 01:44:55

Last argument in imagepng($image_p, null, 100) should be between 0 and 9.

try this:

$image = imagecreatefrompng ( $filename );
$new_image = imagecreatetruecolor ( $width, $height ); // new wigth and height
imagealphablending($new_image , false);
imagesavealpha($new_image , true);
imagecopyresampled ( $new_image, $image, 0, 0, 0, 0, $width, $height, imagesx ( $image ), imagesy ( $image ) );
$image = $new_image;

// saving
imagealphablending($image , false);
imagesavealpha($image , true);
imagepng ( $image, $filename );

see if this works

#upload de image
public function upImagem($imagem, $dir, $res, $id, $tam){

    $arquivo = $imagem;
    $arq_nome = $arquivo['name'];
    $ext = $arquivo['type'];

    $nome=$this->RenImg($arquivo, $dir, $id, $tam);
    $imagem = $arquivo['tmp_name'];


    if($ext=='image/jpeg'){
    $img = imagecreatefromjpeg($imagem);
    }
    elseif($ext=='image/png'){
    $img = imagecreatefrompng($imagem);
    }
    elseif($ext=='image/gif'){
    $img = imagecreatefromgif($imagem);
    }


    if(($ext=='image/png') or ($ext=='image/gif')){
    list($x, $y) = getimagesize($arquivo['tmp_name']);
    }
    elseif($ext=='image/jpeg'){
    $x = imagesx($img);//original height
    $y = imagesy($img);//original width
    }

    $altura  = $res[1];
    $largura = $res[0];


    $nova  = imagecreatetruecolor($largura,$altura);
    $preto = imagecolorallocate($nova, 0, 0, 0);

    if(($ext=='image/png') or ($ext=='image/gif')){
    imagealphablending($nova , false);
    imagesavealpha($nova , true);
    }

    if($ext=='image/png'){
    imagecolortransparent ($nova, $preto);
    imagecopymerge($img, $nova, 0, 0, 0, 0, imagesx($nova), imagesy($nova), 100);
    imagecopyresized($nova,$img,0,0,0,0,$largura,$altura, $x, $y );
    }
    else {
    imagecopyresampled($nova,$img,0,0,0,0,$largura,$altura,$x,$y);
    }


    if($ext=='image/jpeg'){
    imagejpeg($nova,$nome,99);
    }

    elseif($ext=='image/gif'){
    imagealphablending($nova , false);
    imagesavealpha($nova , true);
    imagegif($nova,$nome,99);
    }

    elseif($ext=='image/png'){
    imagealphablending($nova , false);
    imagesavealpha($nova , true);
    imagepng($nova,$nome);
    }

    imagedestroy($img);
    imagedestroy($nova);

}



#renames the image
public function RenImg($arq,$dir,$id,$tam){

    $arq_nome = $arq['name'];
    $arq_nome2=str_replace('.jpg','',$arq['name']);//renomeia o arquivo
    $arq_nome2=str_replace('.png','',$arq_nome2);//renomeia o arquivo
    $arq_nome2=str_replace('.gif','',$arq_nome2);//renomeia o arquivo
    //$new_name = md5($arq_nome);
    $ext = $this->getExt($arq_nome);
    $nome = $dir.$id.$tam.'.jpg';//.'.'.$ext

    return $nome;

}


#capture the file extension
public function getExt($arq){

    $ext = pathinfo($arq, PATHINFO_EXTENSION);

    return $ext;

}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!