Есть ли методика повторного сглаживания изображения на другой цвет фона? - PullRequest
2 голосов
/ 14 августа 2010

Существует ли программный подход для рисования сглаженного изображения на новом цвете / узоре фона, который бы повторно сглаживал изображение на новом цвете фона? Предпочтительно доступны для .Net программы?

Ответы [ 3 ]

0 голосов
/ 14 августа 2010

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

0 голосов
/ 07 ноября 2010

Нет способа сделать это в общем случае.Но если вы немного ограничите свои требования, это можно сделать.

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

Например, предположим, что сглаженное изображение состоит из слова в каком-то шрифте черного цвета.И фон произвольный.Затем, чтобы «повторно сгладить» изображение для другого фона, необходимо выполнить два шага:

  1. Восстановить исходное сглаженное изображение, изолированное от фона.Для этого выполните следующий алгоритм:

    for_every_pixel {<br> isolated_pixel_intensity = 1 - rgb_distance(mixed_pixel_rgb - background_pixel_rgb, foreground_solid_rgb)<br> }<br> // rgb_distance is implemented as Pythagora's Theorem in 3D.

  2. Теперь, когда у вас есть изображение переднего плана, просто смешайте его с новым фоном.

Вы должны написать код самостоятельно.Вы можете использовать System.Drawing.Bitmap в качестве основы, поскольку вы используете .NET.

Редактировать: Не обращайте на это внимания.Это на самом деле не может работать, потому что есть случаи, которые невозможно решить, а именно, когда фоновое изображение содержит области того же цвета, что и передний план.

0 голосов
/ 14 августа 2010

Вы можете использовать WPF для создания нового изображения и сохранить его в файле изображения.

...