Ciao Alhazred! Scusa, hai ragione, ora dovrebbe essere meglio:
Codice PHP:
$allowed_type = array("image/jpeg","image/pjpeg", "image/gif", "image/x-png", "image/png");
$type = $_FILES["image_upload_box"]["type"];
// get width and height of original image
list($image_width, $image_height) = getimagesize($_FILES["image_upload_box"]["tmp_name"]);
$OS = $_POST['OS'];
$pub_name = $_POST['pub_name'];
$lang = $_POST['lang'];
// file needs to be jpg,gif,bmp,x-png, 4 MB max and width 320,640.
if (in_array($type, $allowed_type) && ($_FILES["image_upload_box"]["size"] < 4000000) && ($image_width == 640) && ($image_height == 100)) {
// if uploaded image was JPG/JPEG
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 uploaded image was GIF
if($_FILES["image_upload_box"]["type"] == "image/gif"){
$image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
}
// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)
// if uploaded image was BMP
if($_FILES["image_upload_box"]["type"] == "image/bmp"){
$image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
}
// if uploaded image was PNG
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);
//final file name
$resized_name = basename($remote_file);
Ho trovato alcune soluzioni, tipo imagesavealpha(), ma non so in che parte del codice dovrei inserirla.
Il problema persiste solo con le immagini trasparenti, ma la maggiore utilità dello script dovrebbe essere proprio con queste ultime. Qualche idea?