@Diversia

Как уменьшить качество картинки?

Есть метод:

CFile::ResizeImageFile(
	$image['tmp_name'], 
	$tmpImage, 
	array('width' => $maxW, 'height' => $maxH), 
	$resizeType,
	false,
	$quality
);

Иногда попадаются картинки, которые по размеру файла большие, а ширина и высота - небольшие.
Например картинка 681КБ (841x561):
https://yadi.sk/i/7l4pKGhsW6ZK_A
Хотим уменьшить качество без изменения размера (картинка и так маленькая, зачем ее уменьшать?). Задаем те же размеры в массив, а jpgQuality задаем 50. Но изображение не меняется, добавляется файл без модификации.

Что делать?
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 1
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
Resize работает только тогда, когда изменяется исходный width или height. Если вы задали размеры, но картинка и так меньше ваших размеров, то Resize не сработает. А потому и неприменятся quality и прочие параметры.
jpgQuality 50 - это уже плохо. Вы получите некачественную картинку. А на картинках с меньшим разрешением это будет особенно заметно.
Я бы задавал Quality в зависимости от разрешения оригинального файла.
Некоторые результаты интереснее получать работая с изображениями с библиотекой на php
Пример
Чтобы сжимать качество вашим способом, получите исходный размер, и подставьте его в параметры за минусом 1 пикселя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы