Salve,
mi stà capitando che alcune immagini jpg dopo il ridimensionamento vengano tutte nere.
Di seguito il codice della funzione che utilizzo per ridimesionare le immagini:
codice:
// $sourceImage = percorso immagine da ridimensionare
// $id_image = id che poi diventerà la parte iniziale del nome del nuovo file
// $image_type = stringa che diventerà parte del nome del nuovo file
// $maxWidth,$maxHeight = dimensioni del nuovo file

function img_product_resize($sourceImage,$id_image,$image_type,$maxWidth,$maxHeight) { 
 $imagesize = getimagesize($sourceImage); 
 $larghezza_origine = $imagesize[0]; 
 $altezza_origine = $imagesize[1]; 
 
 if (($larghezza_origine < $maxWidth) && ($altezza_origine < $maxHeight)) {
   $newHeight = $altezza_origine;
  $newWidth = $larghezza_origine;
  }elseif ($larghezza_origine >= $altezza_origine) {
    $newWidth = intval($maxWidth / 1.1);
    $newHeight = intval((($maxWidth * $altezza_origine) / $larghezza_origine) /1.1);
   } else {
      
     $newHeight = intval($maxHeight / 1.1);
     $newWidth = intval((($maxHeight * $larghezza_origine) / $altezza_origine) /1.1);
    }


 $positionX = ($maxWidth - $newWidth) / 2;
 $positionY = ($maxHeight - $newHeight) / 2;
 
 list($imgWidth, $imgHeight) = getimagesize($sourceImage);
 
 ini_set("gd.jpeg_ignore_warning", 1);
 $image = imagecreatefromjpeg($sourceImage);  
 
 $ni    = imagecreatetruecolor($maxWidth,$maxHeight);
 $white = imagecolorallocate($ni, 255, 255, 255);
 imagefill($ni, 0, 0, $white);
 
 
 $newImage = imagecreatetruecolor($newWidth, $newHeight);
 
 
 imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $imgWidth, $imgHeight);
 
 
 imagecopy($ni, $newImage, $positionX, $positionY, 0, 0, $newWidth, $newHeight);
 
 $array_id = str_split($id_image);
 
 $lunghezza_array = count($array_id);
 
 $percorso_iniziale = '../img/p/';
 for($i=0;$i<$lunghezza_array;$i++) {
 if (!file_exists($percorso_iniziale . $array_id[$i])) {
  mkdir($percorso_iniziale . $array_id[$i]);
  }
  $percorso_iniziale .= $array_id[$i] .'/';
 }
 $percorso_finale = $percorso_iniziale;
 
 
 imagejpeg($ni, $percorso_finale.$id_image.'-'.$image_type.'.jpg', 50);
 
 copy($sourceImage, $percorso_finale.$id_image.'.jpg');

 imagedestroy($ni);
}
Il problema è che alcune immagini jpg dopo il ridimesionamento sono tutte nere.
Devo dire che su un processo di più di 6000 immagini elaborate solo una 50ina risultano tutte nere.
Però mi sembra strano visto che sono tutte jpg che vengono ridimensionate sempre in jpg.

Sbaglio qualcosa?
Grazie.