Изображение "Градиент размытия" - PullRequest
2 голосов
/ 02 июня 2011

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

Предположим, что линия, которую рисует пользователь, разделяет изображение по горизонтали точно по центру. Затем вдоль этой линии эффект градиента должен составлять 0%, на полпути вверх и вниз от этой линии, эффект должен быть 50% и т. Д. (Если у вас есть Picasa на вашем компьютере, то есть аналогичный эффект для эллиптического градиента )

Теперь я подумал, что мог бы попробовать следующее (чего у меня пока нет - я просто собираю идеи здесь): я мог бы создать 100% размытую версию изображения и объединить ее с исходным изображением, используя альфа-канал. -mask. Эта альфа-маска будет создана из простого черно-белого линейного градиента.

Как вы думаете, это может сработать? Возможны ли другие реализации, использующие фильтры напрямую?

1 Ответ

7 голосов
/ 02 июня 2011

Да, подход, который вы имеете в виду, будет работать просто отлично. Вот два изображения, левое изображение является нормальным, а правое состоит из двух изображений друг на друге, где нижняя часть нормальна, а верхняя часть размыта, а верхняя часть использует маску непрозрачности, чтобы смешать два:

<UniformGrid Columns="2">
    <Image Source="http://thecybershadow.net/misc/stackoverflow.png"/>
    <Grid>
        <Image Source="http://thecybershadow.net/misc/stackoverflow.png"/>
        <Image Source="http://thecybershadow.net/misc/stackoverflow.png">
            <Image.Effect>
                <BlurEffect Radius="5"/>
            </Image.Effect>
            <Image.OpacityMask>
                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                    <GradientStop Color="Transparent" Offset="0"/>
                    <GradientStop Color="White" Offset="1"/>
                </LinearGradientBrush>
            </Image.OpacityMask>
        </Image>
    </Grid>
</UniformGrid>

И вот как это выглядит с размытым правым изображением, когда вы идете сверху вниз:

Logo Blurred and Blended

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...