Bu şekilde deneyebilirsiniz.

function process_image($source_url, $destination_url, $quality){
    $info = getimagesize($source_url);
    $width = $info[0];
    $height = $info[1];

    if ($info['mime'] == 'image/jpeg'){
      $image = imagecreatefromjpeg($source_url);
      imagejpeg($image, $destination_url, $quality);
    } else if ($info['mime'] == 'image/png'){
      $image = imagecreatefrompng($source_url);
      $thumb = imagecreatetruecolor($width, $height);
      imagealphablending($thumb, false);
      imagesavealpha($thumb, true);  
      imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $height, $width, $height);
      imagepng($thumb, $destination_url);
    }
    
    return $destination_url;
}
mrdeejay adlı üyeden alıntı: mesajı görüntüle
Atmayı unutmuşum kusura bakmayın
//process image before uploading to server
function process_image($source_url, $destination_url, $quality){
    $info = getimagesize($source_url);
    if ($info['mime'] == 'image/jpeg'){
      $image = imagecreatefromjpeg($source_url);
    }
    elseif ($info['mime'] == 'image/png'){
      $image = imagecreatefrompng($source_url);
    }
    imagejpeg($image, $destination_url, $quality);
    return $destination_url;
}