1

只是一个快速的问题。

可以这样:

圆点图像

在 iOS 设备上完成图像处理?如果是,如何?

4

3 回答 3

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);
 }
于 2012-08-06T00:11:11.030 回答
1

您应该能够通过循环和绘制黑白圆圈来做到这一点,然后使用该图像作为图像的蒙版。

这是我在 Google 上找到的关于 CoreGraphics 掩码的第一个链接,您可以根据自己的需要进行调整: http: //cocoawithlove.com/2009/09/creating-alpha-masks-from-text-on.html

我想画很多圆圈是你可以通过自己的谷歌搜索来弄清楚的。

于 2012-08-02T09:41:55.730 回答
0

简短的回答是:是的,但目前我不确定具体使用哪个框架。注意:你刚刚问过是否可能,我给出了你的问题的答案,而不是如何去

于 2012-08-02T09:37:18.933 回答