Как программно добавить мягкую фокусировку к изображению
Мне было интересно, как добавить мягкую фокусировку (чтобы немного размыть изображение) Путь path.com делает на этой странице https://path.com/p/35p8q5 (фоновое изображение). Я не знаю, возможно ли это без использования photoshop.
6 answers
Библиотека перехода (для PHP, Python...) - это ImageMagick. Среди прочего, это позволяет размывать.
Адаптация базового примера использования:
<?php
header('Content-type: image/jpeg');
$image = new Imagick('image.jpg');
$image->blurImage(5, 3);
echo $image;
?>
Если вы посмотрите на изображение, которое является фоном этой страницы, вы увидите, что само изображение размыто.
Поверх него наложен элемент "затемнения" с черным фоном, непрозрачностью 25%, но это не размывает и не искажает изображение.
Вероятно, можно сделать то, что вы просите, используя библиотеку GD, хотя я считаю, что это не совсем то, что вы хотите сделать.
Простой способ сделать это - взять каждый пиксель изображения, сложить окружающие его пиксели и получить среднее значение RGB окружающих пикселей. Затем установите пиксель на это среднее значение. Сделайте это для каждого пикселя
Я заметил, что вы включили python, поэтому я бы предложил изучить pil. Я использовал его только немного, но, похоже, есть модуль , который может размывать изображения.
Вы можете сделать это на Python с помощью PIL. Существует метод filter
для изображений, к которому вы можете перейти ImageFilter.BLUR
. Вам нужно будет сделать это несколько раз, чтобы получить степень размытия, показанную в вашем образце.
def blur_multiple(im, amount=1):
result = im
for i in range(amount):
result = result.filter(ImageFilter.BLUR)
return result