Нет способа сделать это в общем случае.Но если вы немного ограничите свои требования, это можно сделать.
Я могу рассказать вам, как это сделать, если предположить, что сглаженное изображение имеет известный нам сплошной цвет, и у нас есть фон в виде отдельного файла.
Например, предположим, что сглаженное изображение состоит из слова в каком-то шрифте черного цвета.И фон произвольный.Затем, чтобы «повторно сгладить» изображение для другого фона, необходимо выполнить два шага:
Восстановить исходное сглаженное изображение, изолированное от фона.Для этого выполните следующий алгоритм:
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.
Теперь, когда у вас есть изображение переднего плана, просто смешайте его с новым фоном.
Вы должны написать код самостоятельно.Вы можете использовать System.Drawing.Bitmap
в качестве основы, поскольку вы используете .NET.
Редактировать: Не обращайте на это внимания.Это на самом деле не может работать, потому что есть случаи, которые невозможно решить, а именно, когда фоновое изображение содержит области того же цвета, что и передний план.