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
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();
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);