foreach ($images as $image) {
$name = explode('.', $image);
$webp = new Imagick($image);
$webp->setImageFormat('webp');
$webp->writeImage($name[0] . '.webp');
}
$dir = '/var/www/html/uploads';
$exts = ['png', 'gif', 'jpg', 'jpeg'];
$images = new DirectoryIterator($dir);
foreach ($images as $image) {
if ($image->isFile() && in_array($image->getExtension(), $exts, true)) {
$name = explode('.', $image->getFilename());
$webp = new Imagick($dir . DIRECTORY_SEPARATOR . $image);
$webp->setImageFormat('webp');
$webp->writeImage($dir . DIRECTORY_SEPARATOR . $name[0] . '.webp');
//unlink($dir . DIRECTORY_SEPARATOR . $image->getFilename()); // удаляем после обработки
}
}
if (isset($_FILES['file']['tmp_name'])) {
$image = imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name']));
$name = time() . '_' . substr($_FILES['file']['name'], 0, -4);
imagejpeg($image, './img/' . $name . '.jpg');
for (
$initialQuantity = 50, $targetFileSize = 32 * 1024, $size = 2 * 1024 * 1024;
$targetFileSize < $size && $initialQuantity >= 10;
$initialQuantity -= 5
) {
ob_start();
imagewebp($image, null, $initialQuantity);
$image_data = ob_get_clean();
$size = strlen($image_data);
}
imagewebp($image, './img/mini/' . $name . '.webp', $initialQuantity);
}