I discovered this post to help me in resizing PNG/JPG & GIF images : Resize images with PHP, support PNG, JPG but I really don't understand how to use it in my own code "context", my context is lookin' like this:
$filepath = $_FILES['file']['tmp_name'];
$fileSize = filesize($filepath);
$fileinfo = finfo_open(FILEINFO_MIME_TYPE);
$filetype = finfo_file($fileinfo, $filepath);
if ($fileSize === 0) {
die("Fail");
}
if ($fileSize > 3145728) {
die("The file is too large");
}
$allowedTypes = [
'image/jpeg' => 'jpg',
'image/png' => 'png',
'image/gif' => 'gif'
];
if (!in_array($filetype, array_keys($allowedTypes))) {
die("File is not allowed");
}
$filename = "imagenumber" . numbergenerate(); //numbergenerate() is a simple function which generates 5 random numbers to give a new label to the image
$extension = $allowedTypes[$filetype];
$targetDirectory = __DIR__ . "/uploads";
$newFilepath = $targetDirectory . "/" . $filename . "." . $extension;
function resize($newWidth, $targetFile, $originalFile) {
$info = getimagesize($originalFile);
$mime = $info['mime'];
switch ($mime) {
case 'image/jpeg':
$image_create_func = 'imagecreatefromjpeg';
$image_save_func = 'imagejpeg';
$new_image_ext = 'jpg';
break;
case 'image/png':
$image_create_func = 'imagecreatefrompng';
$image_save_func = 'imagepng';
$new_image_ext = 'png';
break;
case 'image/gif':
$image_create_func = 'imagecreatefromgif';
$image_save_func = 'imagegif';
$new_image_ext = 'gif';
break;
default:
throw new Exception('Unknown image type.');
}
$img = $image_create_func($originalFile);
list($width, $height) = getimagesize($originalFile);
$newHeight = ($height / $width) * $newWidth;
$tmp = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
if (file_exists($targetFile)) {
unlink($targetFile);
}
$image_save_func($tmp, "$targetFile.$new_image_ext");
}
resize(100,$newFilepath,$filepath);
//I removed the part below...
$res = copy($filepath, $newFilepath);
if(!$res) {
die("Can't move file. 1");
}
unlink($filepath);
If anyone can help me understand how to use that function provided in the link above I would really appreciate it.