1

簡単な質問です。

これはできますか:

水玉模様

iOSデバイスでの画像処理で実行されますか?はいの場合、どのように?

4

3 に答える 3

3

はい。ただし、コアグラフィックスは画像に対してこのようなフィルタリングを行うための最良の方法ではない場合があります。私の推奨は、OpenGLES2.0フラグメントシェーダーを使用することです。実際、私はこれを行うために1つ書いただけです。

水玉画像変換

これは、オープンソースの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

これは、円をループして白黒で描画し、その画像を画像のマスクとして使用するだけで実行できるはずです。

これが、CoreGraphicsマスキングについてGoogleで見つけた最初のリンクです。これは、おそらくニーズに合わせて調整できます。http: //cocoawithlove.com/2009/09/creating-alpha-masks-from-text-on.html

たくさんの円を描くことは、あなた自身のグーグルで理解できるものだと思います。

于 2012-08-02T09:41:55.730 に答える
0

短い答えは:はい、しかし正確にどのフレームワークを使用しているかは今のところわかりません。注:Yoは、それが可能かどうかを尋ねたところです。私は、行き方ではなく、あなたの質問に答えました。

于 2012-08-02T09:37:18.933 に答える