保存数据URI JPG图像使用php imagecreatefromjpeg在上传时创建黑色图像

时间:2014-09-23 00:45:52

标签: php image gd data-uri

我正在使用以下代码上传

//width,new_width,height,new_height are set
$tmp_filename = $_FILES['file']['tmp_name'];
$image_p = imagecreatetruecolor($new_width, $new_height); //resample image          

if(($ext=='jpg') | ($ext=='jpeg')){
    //if image to be uploaded is jpg
    $image = imagecreatefromjpeg($tmp_filename); 
}
else{
    //if image to be uploaded is png
    $image = imagecreatefrompng($tmp_filename);
}

//to convert to jpg
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

$done=imagejpeg($image_p, $output_dirrectory."/".$image_name.".jpg",95); //95% quality

现在,问题是,当我从使用数据URI生成的任何其他网站保存图像时,它将作为JPG图像保存在我的本地计算机上。当我尝试使用以下代码上传相同的图像时,它会创建黑色图像。

我无法弄清楚问题。我希望解决方案在于imagecreatefromstring,但我不知道如何使用以下代码?请建议任何解决方案?

1 个答案:

答案 0 :(得分:0)

尝试添加:

$width = imageSX($image);
$height = imageSY($image);

在调用imagecopyresampled之前