Как Instagram или Hipstamatic делают фотофильтры? - PullRequest
13 голосов
/ 22 декабря 2010

Как эти приложения iphone заставляют эти фильтры работать с фотографиями?Мне было любопытно об этом некоторое время.Есть ли библиотека, которая делает это?

Ответы [ 4 ]

7 голосов
/ 19 февраля 2011

Это действительно классное объяснение того, что нужно для создания фильтра: http://taptaptap.com/blog/creating-a-camera-plus-fx/

Как объяснено в блоге «Камера +».

4 голосов
/ 22 декабря 2010

В настоящее время в iOS работает несколько библиотек изображений, и многие библиотеки C / C ++ могут быть адаптированы (хотя в зависимости от кода может потребоваться много работы).

Три, которые я могу себе представитьна данный момент:

простая обработка изображений iphone

ImageMagick

MGImageUtilities

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

Надеюсь, что вы попадете на правильный путь.1031 * О, а вот пример использования Apple OpenGL для обработки изображений:

GLImageProcessing

2 голосов
/ 15 декабря 2013

Ну, вы могли бы сделать небольшой взлом.Создайте градиент цвета - enter image description here

вот так.а затем добавить любой фильтр Instagram на него.Теперь, когда у вас есть изображение, вы можете просто вычесть значения из значений оттенков серого, которые у вас уже есть.Построение значений rgb на регуляторе кривой даст вам точные сделанные корректировки.Один из них такой:

$r=[48,57,65,72,79,86,91,96,104,109,115,122,132,143,154];
$g=[10,20,34,52,73,94,117,139,157,172,192,204,214,223,229];
$b=[41,34,87,115,139,163,185,204,219,230,238,244,247,250,252];

Иногда эффекты также достигаются путем умножения данного существующего изображения на исходное изображение.Посмотрите на Дополнительные советы: http://docs.rainmeter.net/tips/colormatrix-guide Теперь, если вы хотите создавать эффекты для изображений.Концепция идет так.Возьмите каждый пиксель изображения, а затем выполните некоторые числовые манипуляции с пикселями, а затем поместите их на пустой холст в том же порядке, что и исходное изображение.

Итак, допустим, у вас есть изображение

+++++++++++++
|100| 80| 70|
| 50| 30| 60|
+++++++++++++

Ради простоты предположим, что каждое число представляет значение RGB, где R = G = B, поэтому для image[0][0] R=G=B=100

Теперь предположим, что вы хотите сделать изображение в градациях серого.из вышесказанного.Таким образом, для оттенков серого формула имеет вид x = 0.299r + 0.587g + 0.114b (обычно вы можете изменить значение). Итак, вы применяете математические вычисления, получаете значение x и подставляете их.(Для изображений в градациях серого R и G и B имеют одинаковые значения).

Итак, в конце концов, ваше новое изображение становится:

+++++++++++++
| x0| x1| x2|
| x3| x4| x5|
+++++++++++++

Аналогично для сепии, есть некоторая формула для вычисления значенийиз r, g, b

Иногда требуется добавить размытие по Гауссу или, возможно, наложение изображений.Это все пиксельные манипуляции.См. Формулу для режимов наложения здесь

Я работал над чем-то похожим год или два назад. Java-апплет с изображениями , а также в [javascript] (https://github.com/argentum47/JustBnW)

0 голосов
/ 19 июня 2011

Я открыл библиотеку, пытаясь реплицировать эти фильтры. Смотрите этот поток переполнения стека здесь:

Фильтры изображений в Instagram на iPhone

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