converting DURING upload before saving on server png/gif to jpg

后端 未结 2 507
礼貌的吻别
礼貌的吻别 2021-01-15 06:29

So I have an image upload script. It uploads the image and saves it to the space on the server. What I can\'t seem to get my head around is say, when the user uploads a .png

相关标签:
2条回答
  • 2021-01-15 06:55

    Using GD, and assuming $images is the directory where you store your images (with ending slash), and $name - the file name of the original image:

    $destinationPath = $images . basename($name, $ext) . '.jpg';
    $source = imagecreatefrompng($images . $name);
    imagejpeg($source, $destinationPath, 75);
    imagedestroy($source);
    

    Or with Imagick:

    $image = new Imagick($images . $name);
    $image->writeImage($destinationPath);
    $image->destroy();
    
    0 讨论(0)
  • 2021-01-15 07:02

    Use this function to convert the uploaded image

    // http://stackoverflow.com/a/1201823/358906
    // Quality is a number between 0 (best compression) and 100 (best quality)
    function png2jpg($originalFile, $outputFile, $quality) {
        $image = imagecreatefrompng($originalFile);
        imagejpeg($image, $outputFile, $quality);
        imagedestroy($image);
    }
    

    Then delete old image with unlink().

    Your code will be something like:

    // After the upload
    png2jpg($the_jpg_file_path, $the_png_file_path, 80);
    unlink($the_jpg_file_path);
    
    0 讨论(0)
提交回复
热议问题