Как программно добавить мягкую фокусировку к изображению


Мне было интересно, как добавить мягкую фокусировку (чтобы немного размыть изображение) Путь path.com делает на этой странице https://path.com/p/35p8q5 (фоновое изображение). Я не знаю, возможно ли это без использования photoshop.

Author: Adim, 2012-01-25

6 answers

Библиотека перехода (для PHP, Python...) - это ImageMagick. Среди прочего, это позволяет размывать.

Адаптация базового примера использования:

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->blurImage(5, 3);
echo $image;
?>
 4
Author: Konrad Rudolph, 2012-01-25 17:14:36
 0
Author: sathishkumar, 2012-01-25 17:12:58

Если вы посмотрите на изображение, которое является фоном этой страницы, вы увидите, что само изображение размыто.

Поверх него наложен элемент "затемнения" с черным фоном, непрозрачностью 25%, но это не размывает и не искажает изображение.

Вероятно, можно сделать то, что вы просите, используя библиотеку GD, хотя я считаю, что это не совсем то, что вы хотите сделать.

 0
Author: Jeff Lambert, 2012-01-25 17:13:21

Простой способ сделать это - взять каждый пиксель изображения, сложить окружающие его пиксели и получить среднее значение RGB окружающих пикселей. Затем установите пиксель на это среднее значение. Сделайте это для каждого пикселя

 0
Author: theDazzler, 2012-01-25 17:14:50

Я заметил, что вы включили python, поэтому я бы предложил изучить pil. Я использовал его только немного, но, похоже, есть модуль , который может размывать изображения.

 0
Author: krs1, 2012-01-25 17:15:02

Вы можете сделать это на 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
 0
Author: Mark Ransom, 2012-01-25 17:24:36