Switch image conversion to Imagick #3
@ -3,7 +3,7 @@ FROM ubuntu:23.04
|
|||||||
# Install dependencies
|
# Install dependencies
|
||||||
RUN apt update
|
RUN apt update
|
||||||
RUN DEBIAN_FRONTEND=noninteractive \
|
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
|
# Clean up
|
||||||
RUN apt clean
|
RUN apt clean
|
||||||
|
25
upload.php
25
upload.php
@ -136,16 +136,29 @@ try {
|
|||||||
|
|
||||||
$needsToBeSaved = true; // Whether the file needs to be saved
|
$needsToBeSaved = true; // Whether the file needs to be saved
|
||||||
|
|
||||||
if ($shouldConvertToWebp) { // Convert the image to webp if applicable
|
// Check the file type and size
|
||||||
if (in_array($fileType, array("png", "jpeg", "jpg")) && $_FILES["sharex"]["size"] > $webpThreadhold) {
|
if ($shouldConvertToWebp && in_array($fileType, ["png", "jpeg", "jpg"]) && $_FILES["sharex"]["size"] > $webpThreadhold) {
|
||||||
$image = imagecreatefromstring(file_get_contents($_FILES["sharex"]["tmp_name"]));
|
// 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";
|
$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;
|
$finalName = $webp_file;
|
||||||
$needsToBeSaved = false;
|
$needsToBeSaved = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($needsToBeSaved) { // Save the file if it has not been saved yet
|
if ($needsToBeSaved) { // Save the file if it has not been saved yet
|
||||||
// Move the file to the uploads folder
|
// Move the file to the uploads folder
|
||||||
|
Loading…
Reference in New Issue
Block a user