Salve ragazzi!
Sto cercando di ridimensionare una png/gif 640*100 a 320*50. Ho il seguente codice:
Codice PHP:
$allowed_type = array("image/jpeg","image/pjpeg", "image/gif", "image/x-png", "image/png"); $type = $_FILES["image_upload_box"]["type"];
$type = $_FILES["image_upload_box"]["type"];
list($image_width, $image_height) = getimagesize($_FILES["image_upload_box"]["tmp_name"]);
if (in_array($type, $allowed_type) && ($_FILES["image_upload_box"]["size"] < 4000000) && ($image_width == 640) && ($image_height == 100)) {
if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){ $image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]); }
if($_FILES["image_upload_box"]["type"] == "image/gif"){
$image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]); }
if($_FILES["image_upload_box"]["type"] == "image/bmp"){
$image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]); }
if($_FILES["image_upload_box"]["type"] == "image/png" || $_FILES["image_upload_box"]["type"] == "image/x-png"){
$image_source = imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]); }
$remote_file = "image_files/".rand(0,10000).$_FILES["image_upload_box"]["name"];
imagejpeg($image_source,$remote_file,100);
chmod($remote_file,0644);
$new_width = 320;
$new_height = 50;
$new_image = imagecreatetruecolor($new_width , $new_height);
$image_source = imagecreatefromjpeg($remote_file);
imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
imagejpeg($new_image,$remote_file,100);
imagedestroy($new_image);
imagedestroy($image_source);
$resized_name = basename($remote_file);
Purtroppo però, sebbene funzioni perfettamente con immagini jpg, quando cerco di ridimensionare gif o png, mi restituisce un'immagine nera.
Ho già provato ad usare diverse soluzioni trovate nel forum, ma non riesco ad implementarle nel codice sopra. Avete qualche idea?
Grazie mille a chi mi aiuterà!!!