只是一个简单的问题。
可以这样:
在iOS设备上完成图像处理?如果有,怎么样?
答案 0 :(得分:3)
是的,尽管Core Graphics可能不是对图像进行此类过滤的最佳方式。我的建议是使用OpenGL ES 2.0片段着色器。事实上,我刚写了一个来做这件事:
这是我刚刚添加到我的开源GPUImage框架的GPUImagePolkaDotFilter。使用它的最简单方法是获取框架并将滤镜应用于您想要的任何内容(它足够快以便在视频上实时运行)。
如果您只想使用片段着色器,以下是我的代码:
varying highp vec2 textureCoordinate;
uniform sampler2D inputImageTexture;
uniform highp float fractionalWidthOfPixel;
uniform highp float aspectRatio;
uniform highp float dotScaling;
void main()
{
highp vec2 sampleDivisor = vec2(fractionalWidthOfPixel, fractionalWidthOfPixel / aspectRatio);
highp vec2 samplePos = textureCoordinate - mod(textureCoordinate, sampleDivisor) + 0.5 * sampleDivisor;
highp vec2 textureCoordinateToUse = vec2(textureCoordinate.x, (textureCoordinate.y * aspectRatio + 0.5 - 0.5 * aspectRatio));
highp vec2 adjustedSamplePos = vec2(samplePos.x, (samplePos.y * aspectRatio + 0.5 - 0.5 * aspectRatio));
highp float distanceFromSamplePoint = distance(adjustedSamplePos, textureCoordinateToUse);
lowp float checkForPresenceWithinDot = step(distanceFromSamplePoint, (fractionalWidthOfPixel * 0.5) * dotScaling);
gl_FragColor = vec4(texture2D(inputImageTexture, samplePos ).rgb * checkForPresenceWithinDot, 1.0);
}
答案 1 :(得分:1)
您应该可以通过循环和绘制黑白圆圈,然后使用该图像作为图像的蒙版来实现此目的。
以下是我在Google上发现的第一个关于CoreGraphics屏蔽的链接,您可以根据自己的需要进行调整:http://cocoawithlove.com/2009/09/creating-alpha-masks-from-text-on.html
我想你可以通过自己的一些谷歌搜索来绘制很多圆圈。
答案 2 :(得分:0)
简短答案是:是的,但确切地使用了我目前不确定的框架。 注意:哟刚问过是否有可能,我给了你的问题,而不是如何去