Я использую следующий код для загрузки
//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
Теперь проблема в том, что когда я сохраняю изображение с любого другого веб-сайта, созданного с использованием Data URI, оно сохраняется на моем локальном компьютере в виде изображения JPG. Когда я пытаюсь загрузить то же изображение со следующим кодом, оно создает черное изображение.
Я не мог понять проблему. Я надеюсь, что решение лежит в imagecreatefromstring, но я не знаю, как это сработает со следующим кодом? Пожалуйста, предложите какое-нибудь решение?
попробуйте добавить:
$width = imageSX($image);
$height = imageSY($image);
перед вызовом imagecopyresampled
Других решений пока нет …