Compare commits

...

3 Commits

Author SHA1 Message Date
Lee
5799511916 Merge pull request 'Switch image conversion to Imagick' (#3) from development into master
All checks were successful
/ docker (push) Successful in 2m5s
Reviewed-on: #3
2023-07-06 01:35:42 +00:00
49499b8013 use imagick for image conversion (should be a bit faster)
All checks were successful
/ docker (push) Successful in 2m3s
2023-07-06 02:34:51 +01:00
29620ea48b add imagick
All checks were successful
/ docker (push) Successful in 2m0s
2023-07-06 02:28:20 +01:00
2 changed files with 23 additions and 10 deletions

@ -3,7 +3,7 @@ FROM ubuntu:23.04
# Install dependencies
RUN apt update
RUN DEBIAN_FRONTEND=noninteractive \
apt install nginx php8.1 php8.1-fpm php8.1-gd -y
apt install nginx php8.1 php8.1-fpm php8.1-gd php8.1-imagick -y
# Clean up
RUN apt clean

@ -136,16 +136,29 @@ try {
$needsToBeSaved = true; // Whether the file needs to be saved
if ($shouldConvertToWebp) { // Convert the image to webp if applicable
if (in_array($fileType, array("png", "jpeg", "jpg")) && $_FILES["sharex"]["size"] > $webpThreadhold) {
$image = imagecreatefromstring(file_get_contents($_FILES["sharex"]["tmp_name"]));
// Check the file type and size
if ($shouldConvertToWebp && in_array($fileType, ["png", "jpeg", "jpg"]) && $_FILES["sharex"]["size"] > $webpThreadhold) {
// Create an Imagick object from the uploaded file
$image = new Imagick($_FILES["sharex"]["tmp_name"]);
// Convert the image to WebP
$image->setImageFormat("webp");
$image->setImageCompressionQuality($webpQuality);
// Set the output filename
$webp_file = pathinfo($finalName, PATHINFO_FILENAME) . ".webp";
imagewebp($image, $webp_file, $webpQuality); // Convert the image and save it
imagedestroy($image); // Free up memory
// Save the converted image
$image->writeImage($webp_file);
// Free up memory
$image->clear();
$image->destroy();
// Update the final filename
$finalName = $webp_file;
$needsToBeSaved = false;
}
}
if ($needsToBeSaved) { // Save the file if it has not been saved yet
// Move the file to the uploads folder