Imagecreatefromjpeg returns a black image after resize

后端 未结 2 1065
情深已故
情深已故 2021-01-27 15:49

I have a script to resize an uploaded image, but when I use it, it just returns a black square. All error messages are pointing at this function:

function resize         


        
相关标签:
2条回答
  • 2021-01-27 16:23
    1. Check if the imagecreatetruecolor succeeded. If the new image is "large" it could exceed the PHP memory_limit. This function returns FALSE if it failed for any reason.
    2. Ditto with imagecreatefromjpeg(). The two individual images may fit within the memory limit but together could be too large. The source image may also not exist. This function returns FALSE if it failed for any reason
    3. Check if the imagecopyresampled() failed - it also returns FALSE on failure.
    4. Check if imagejpeg() failed - maybe you don't have write permissions on whatever file you're specifying in $image. And again, this function returns FALSE on failure.
    0 讨论(0)
  • 2021-01-27 16:34

    According to Marc B's answer you could probably make a check if the file is a JPG file. (JPEG, JPG, jpg, jpeg extensions).

    it could be something like:

    $file = explode(".", $_POST['file']);
    $file_ext = $file[count($file)]; // Get the last thing in the array - in this way the filename can containg dots (.)
    $allowed_ext = array('jpg', 'JPG', 'jpeg', 'jpg');
    
    if( in_array($file_ext, $allowed_ext )
    {
        // The code for creating the image here.
    }
    
    0 讨论(0)
提交回复
热议问题