Если размер изображения больше 200 килобайт - изменяет пропорционально до 80%
Скачаем по ссылке и сделаем:
Для реализации данной функциональности вам потребуется использовать библиотеку PHP для работы с изображениями, например, GD или Imagick. Вот пример кода, который позволяет уменьшить размер изображения до 80% от исходного размера, если его размер превышает 200 килобайт:
<?php
$url = 'http://example.com/image.jpg';
$maxSize = 200 * 1024; // Максимальный размер в байтах (200 килобайт)
$headers = get_headers($url, 1);
if (isset($headers['Content-Length'])) {
$size = $headers['Content-Length'];
if ($size > $maxSize) {
// Получаем изображение
$image = file_get_contents($url);
// Создаем изображение из данных
$img = imagecreatefromstring($image);
// Получаем новые размеры изображения (80% от исходного)
$newWidth = imagesx($img) * 0.8;
$newHeight = imagesy($img) * 0.8;
// Создаем новое изображение с новыми размерами
$newImg = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, imagesx($img), imagesy($img));
// Сохраняем новое изображение
imagejpeg($newImg, 'new_image.jpg');
echo "Изображение успешно уменьшено до 80% от исходного размера.";
} else {
echo "Размер изображения не превышает 200 килобайт.";
}
} else {
echo "Не удалось получить размер изображения.";
}
Этот код проверяет размер изображения по указанному URL и, если он превышает 200 килобайт, уменьшает его до 80% от исходного размера. Новое изображение сохраняется под именем new_image.jpg. Пожалуйста, убедитесь, что на вашем сервере установлена библиотека GD для работы с изображениями.
2) можно внутри сайта работать:
Если изображение находится внутри вашего сайта, то вы можете использовать функцию file_get_contents() для чтения файла и создания изображения. Вот пример кода, который уменьшает размер изображения до 80% от исходного размера, если его размер превышает 200 килобайт:
<?php
$filePath = 'path/to/your/image.jpg'; // Путь к изображению на сервере
$maxSize = 200 * 1024; // Максимальный размер в байтах (200 килобайт)
$image = file_get_contents($filePath);
if ($image !== false) {
$size = strlen($image);
if ($size > $maxSize) {
// Создаем изображение из данных
$img = imagecreatefromstring($image);
// Получаем новые размеры изображения (80% от исходного)
$newWidth = imagesx($img) * 0.8;
$newHeight = imagesy($img) * 0.8;
// Создаем новое изображение с новыми размерами
$newImg = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, imagesx($img), imagesy($img));
// Сохраняем новое изображение
imagejpeg($newImg, 'new_image.jpg');
echo "Изображение успешно уменьшено до 80% от исходного размера.";
} else {
echo "Размер изображения не превышает 200 килобайт.";
}
} else {
echo "Не удалось прочитать изображение.";
}
Этот код читает изображение по указанному пути на сервере и, если его размер превышает 200 килобайт, уменьшает его до 80% от исходного размера. Новое изображение сохраняется под именем new_image.jpg. Пожалуйста, убедитесь, что на вашем сервере установлена библиотека GD для работы с изображениями.