GPUImage中用alphablend时png图片透明部分偏灰的问题解决

Standard

将GPUImageAlphaBlendFilter.m中的“gl_FragColor = vec4(mix(textureColor.rgb, textureColor2.rgb, textureColor2.a * mixturePercent), textureColor.a);”(老sdk有一处,新sdk有两处)替换为:“if (textureColor2.a == 0.0) {
gl_FragColor = textureColor;
} else {
gl_FragColor = vec4(mix(textureColor.rgb, textureColor2.rgb / textureColor2.a,mixturePercent * textureColor2.a), textureColor.a);
}”即可。

GPUImage加载图片时旋转错误

Standard

GPUImage默认加载图片不是按照图片的orientation自动旋转的,需要做一些处理才能保证显示和输出都是拍摄角度。这个处理就是:给chain上的任何一个filter加[xxxxfilter setInputRotation:kGPUImageRotationRight atIndex:0],这句话就把输入图片右转90°。有趣的是,iOS识别出的输入图片UIImage的width和height不随这个方向的改变而改变,它会自动按拍照时的方向正确识别之~

GPUImage

Standard

最近研究了下GPU计算的iOS图像处理引擎GPUImage,疑为天人。从它的showcase里看到它的处理方法包罗万象,从类似ps的图层混合到图像关键点提取,从裁切到灭点计算,已经完全够工程化应用了,更何况它还是GPU计算,比CPU计算快了几倍。今天用它裁切一张分辨率不小的图片为几份,几乎1秒左右就搞定了,赞!