Обработка изображений: алгоритм Soft-Light, такой как Photoshop - PullRequest
1 голос
/ 22 марта 2012

Я разрабатываю алгоритм мягкого освещения с нуля для Android на базе документов от Adobe: http://www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_archives/blend_modes.pdf http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/SoftLight.pbk

Может кто-нибудь объяснить мне алгоритм или хотя бы функцию dst, src, cb, cs, sampleNearest() и как их рассчитать? Спасибо тебе!

input image4 dst;
input image4 src;
output pixel4 result;

void
evaluatePixel()
{
    pixel4 a = sampleNearest(dst,outCoord()); // cb
    pixel4 b = sampleNearest(src,outCoord()); // cs
    ....
}

1 Ответ

1 голос
/ 25 марта 2012

См. Этот ответ для формулы смешивания:

     ChannelBlend_SoftLight(A,B)  ((uint8)((B < 128)?(2*((A>>1)+64))*((float)B/255):(255-(2*(255-((A>>1)+64))*(float)(255-B)/255))))

Ваш код выше рассчитывает смешивание для одного пикселя.

a, b - это 2 разных пикселя, функция aampleNearest получает 2 пикселя от входных изображений.

dst,src 2 входных изображения.

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