Изгиб растровых изображений - как в PS5.Алгоритмы?Код?Обработка изображения? - PullRequest
4 голосов
/ 29 декабря 2010

Начиная с растрового изображения ..

alt text

Есть ли тривиальный способ сделать это в какао, о котором я не знаю?(Например, «CAShapeLayer для изображений!»)?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2010

Самый простой способ (который, безусловно, стоит рассмотреть, если вы ориентируетесь на телефон) - это использовать деформацию сетки: деформируйте сетку из квадратов / треугольников и нанесите на нее свою текстуру.Это легко аппаратно ускоряется с OpenGL ES.Геометрия может быть настолько точной, насколько вы хотите, но ограниченное качество выборки текстур может быть проблемой в зависимости от вашего приложения.

2 голосов
/ 29 декабря 2010

Концепция проста, даже если реализация не.

  1. Определите математическое отображение от позиции в выходном изображении до позиции во входном изображении.Вероятно, это сложная часть, так как вы, скорее всего, будете иметь формулу, идущую от ввода к выводу, а не наоборот.
  2. Для каждого пикселя выходного изображения определите его координаты на входе.Они, вероятно, будут иметь некоторую дробную составляющую, т.е. они не будут точно совпадать с входными данными.
  3. Используйте алгоритм интерполяции по вашему выбору, чтобы определить, какое значение должно быть в выбранной вами точке ввода.1008 *
  4. Сполосните и повторите.
...