私はイメージに多くの解決策を加えることができます。しかし、私は選択GPUImage(GPUImageLookupFilter
)私のイメージを作る。
私のソースコードを使用しています。
IO - Objective-c GPUImageルックアップフィルタはルックアップイメージで効果を出します。
GPUImagePicture *sourceImagePic = [[GPUImagePicture alloc] initWithImage:sourceImage];
GPUImagePicture *lookupImageSource = [[GPUImagePicture alloc] initWithImage:[UIImage imageNamed:@"lookup.png"]];
GPUImageLookupFilter *lookupImageFilter = [[GPUImageLookupFilter alloc] init];
[sourceImagePic addTarget:lookupImageFilter];
[lookupImageSource addTarget:lookupImageFilter];
[lookupImageFilter useNextFrameForImageCapture];
[sourceImagePic processImage];
[lookupImageSource processImage];
resultImage = [lookupImageFilter imageFromCurrentFramebufferWithOrientation:UIImageOrientationUp];
return resultImage;
まず私は、配列の画像を扱うとき、私は、ライブラリ内のビデオや選択肢多くの画像で親指(ルックアップ画像8×8(512 )
を使用しますが、 )より高いメモリ。
私は小さなルックアップイメージ(4x4)を使用するとメモリが減少すると思います。ルックアップイメージ4x4(16 )を作成します。
と私はGPUImageLookupFilter
の編集コードを試してみたが、それは動作しません。
void main(){
highp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
highp float blueColor = textureColor.b * 63.0;
highp vec2 quad1;
quad1.y = floor(floor(blueColor)/8.0);
quad1.x = floor(blueColor) - (quad1.y * 8.0);
highp vec2 quad2;
quad2.y = floor(ceil(blueColor)/8.0);
quad2.x = ceil(blueColor) - (quad2.y * 8.0);
highp vec2 texPos1;
texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);
texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);
highp vec2 texPos2;
texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);
texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);
lowp vec4 newColor1 = texture2D(inputImageTexture2, texPos1);
lowp vec4 newColor2 = texture2D(inputImageTexture2, texPos2);
lowp vec4 newColor = mix(newColor1, newColor2, fract(blueColor));
gl_FragColor = mix(textureColor, vec4(newColor.rgb, textureColor.w), intensity);
}
あなたは私がイメージ4×4でこのコードの動作を編集することができます。
ありがとうございました!
なぜ63.0を変更しないのですか?私は15.0を変更しますか? –
なぜそれは63ですか? 63 = 2^6 - 1? –
ありがとうございます。それは働く。 63.0は不明です:)。 –