mirror of https://github.com/itflow-org/itflow
Remove image optimization on upload for now as this will later be added a cron task
This commit is contained in:
parent
0cf1e338c2
commit
44de049f3b
|
|
@ -67,105 +67,6 @@ if (isset($_POST['upload_files'])) {
|
||||||
// Use the file reference (without extension) as the file hash
|
// Use the file reference (without extension) as the file hash
|
||||||
$file_hash = strstr($file_reference_name, '.', true) ?: $file_reference_name;
|
$file_hash = strstr($file_reference_name, '.', true) ?: $file_reference_name;
|
||||||
|
|
||||||
// If the file is an image, optimize it
|
|
||||||
if (in_array($file_extension, ['jpg', 'jpeg', 'png', 'gif', 'webp'])) {
|
|
||||||
|
|
||||||
// Create image resource based on file extension
|
|
||||||
switch ($file_extension) {
|
|
||||||
case 'jpg':
|
|
||||||
case 'jpeg':
|
|
||||||
$src_img = imagecreatefromjpeg($dest_path);
|
|
||||||
break;
|
|
||||||
case 'png':
|
|
||||||
$src_img = imagecreatefrompng($dest_path);
|
|
||||||
break;
|
|
||||||
case 'gif':
|
|
||||||
$src_img = imagecreatefromgif($dest_path);
|
|
||||||
break;
|
|
||||||
case 'webp':
|
|
||||||
$src_img = imagecreatefromwebp($dest_path);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$src_img = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($src_img) {
|
|
||||||
|
|
||||||
// Fix image rotation for JPEG images using EXIF data
|
|
||||||
if (in_array($file_extension, ['jpg', 'jpeg']) && function_exists('exif_read_data')) {
|
|
||||||
$exif = @exif_read_data($dest_path);
|
|
||||||
if (!empty($exif['Orientation'])) {
|
|
||||||
switch ($exif['Orientation']) {
|
|
||||||
case 3:
|
|
||||||
$src_img = imagerotate($src_img, 180, 0);
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
$src_img = imagerotate($src_img, -90, 0);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
$src_img = imagerotate($src_img, 90, 0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get image dimensions
|
|
||||||
$orig_width = imagesx($src_img);
|
|
||||||
$orig_height = imagesy($src_img);
|
|
||||||
$aspect_ratio = $orig_width / $orig_height;
|
|
||||||
|
|
||||||
$preview_max_width = 1200;
|
|
||||||
$preview_max_height = 1200;
|
|
||||||
|
|
||||||
// Maintain aspect ratio
|
|
||||||
if ($orig_width > $orig_height) {
|
|
||||||
$preview_new_width = min($preview_max_width, $orig_width);
|
|
||||||
$preview_new_height = round($preview_new_width / $aspect_ratio);
|
|
||||||
} else {
|
|
||||||
$preview_new_height = min($preview_max_height, $orig_height);
|
|
||||||
$preview_new_width = round($preview_new_height * $aspect_ratio);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create optimized image
|
|
||||||
$optimized_img = imagecreatetruecolor($preview_new_width, $preview_new_height);
|
|
||||||
|
|
||||||
// Handle transparency for PNG & GIF
|
|
||||||
if (in_array($file_extension, ['png', 'gif'])) {
|
|
||||||
imagealphablending($optimized_img, false);
|
|
||||||
imagesavealpha($optimized_img, true);
|
|
||||||
$transparent = imagecolorallocatealpha($optimized_img, 0, 0, 0, 127);
|
|
||||||
imagefilledrectangle($optimized_img, 0, 0, $preview_new_width, $preview_new_height, $transparent);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resize image
|
|
||||||
imagecopyresampled($optimized_img, $src_img, 0, 0, 0, 0,
|
|
||||||
$preview_new_width, $preview_new_height, $orig_width, $orig_height);
|
|
||||||
|
|
||||||
// Define WebP file path
|
|
||||||
$optimized_file_name = $file_hash . ".webp";
|
|
||||||
$optimized_path = $upload_file_dir . $optimized_file_name;
|
|
||||||
|
|
||||||
// Save as WebP
|
|
||||||
imagewebp($optimized_img, $optimized_path, 80);
|
|
||||||
|
|
||||||
// Free memory
|
|
||||||
imagedestroy($optimized_img);
|
|
||||||
imagedestroy($src_img);
|
|
||||||
|
|
||||||
// Delete original uploaded image
|
|
||||||
unlink($dest_path);
|
|
||||||
|
|
||||||
// Get new file size
|
|
||||||
$file_size = filesize($optimized_path);
|
|
||||||
|
|
||||||
// Update details for WebP
|
|
||||||
$file_reference_name = $optimized_file_name;
|
|
||||||
$file_extension = "webp";
|
|
||||||
$file_mime_type = "image/webp";
|
|
||||||
$file_name = pathinfo($originalName, PATHINFO_FILENAME) . ".webp";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Insert file metadata into the database
|
// Insert file metadata into the database
|
||||||
$query = "INSERT INTO files SET
|
$query = "INSERT INTO files SET
|
||||||
file_reference_name = '$file_reference_name',
|
file_reference_name = '$file_reference_name',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue