Android 图像处理:像Photoshop这样的柔光算法
我是在Adobe文档的基础上为Android从头开始开发软光算法的: http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/SoftLight.pbk 有人能给我解释一下算法或者至少是dst、src、cb、cs、Android 图像处理:像Photoshop这样的柔光算法,android,image-processing,Android,Image Processing,我是在Adobe文档的基础上为Android从头开始开发软光算法的: 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; inp
sampleNearest()函数以及如何计算它们吗?
谢谢你
input image4 dst;
input image4 src;
output pixel4 result;
void
evaluatePixel()
{
pixel4 a = sampleNearest(dst,outCoord()); // cb
pixel4 b = sampleNearest(src,outCoord()); // cs
....
}
对于混合配方:
ChannelBlend_SoftLight(A,B) ((uint8)((B < 128)?(2*((A>>1)+64))*((float)B/255):(255-(2*(255-((A>>1)+64))*(float)(255-B)/255))))
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
是两个不同的像素,aampleNearest
函数从输入图像中获取两个像素
dst、src
是两个输入图像。对于混合公式:
ChannelBlend_SoftLight(A,B) ((uint8)((B < 128)?(2*((A>>1)+64))*((float)B/255):(255-(2*(255-((A>>1)+64))*(float)(255-B)/255))))
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
是两个不同的像素,aampleNearest
函数从输入图像中获取两个像素
dst、src
是两个输入图像。我尝试将一个花图像和一个白色图像混合为柔和光,结果得到一个白色图像。在GIMP或photoshop中工作正常。。。我做错了什么?我试着把一个花的图像和一个白色的图像混合成柔和的光线,结果得到了一个白色的图像。在GIMP或photoshop中工作正常。。。我做错了什么?