画像処理コードを高速化しようとしています。私が試みていた要因の 1 つは、次のようにCIImage
直接作成することでした。
CIImage* ciImageStrong;
if (_cachedData)
{
_cachedData = [NSData dataWithContentsOfFile:pathForResource];
ciImageStrong = [CIImage imageWithData:_cachedData];
}
else
{
ciImageStrong = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:pathForResource]];
}
私の問題は、標準@"CISourceOverCompositing"
フィルターで使用すると、すべての画像が通常の alpha blendではなく追加的に描画されることです。
次のコードを使用すると、すべて正常に動作します。
UIImage* uiImageStrong;
if (_cachedData)
{
_cachedData = [NSData dataWithContentsOfFile:pathForResource];
uiImageStrong = [UIImage imageWithData:_cachedData];
}
else
{
uiImageStrong = [UIImage imageWithContentsOfFile:pathForResource];
}
CIImage* ciImageStrong = [CIImage imageWithCGImage:uiImageStrong.CGImage];
kCGColorSpaceModelRGB 色空間を使用してロードしようとしましたが、役に立ちませんでした。質問:
- なぜこれが起こっているのか誰か知っていますか?
- 直接ロードすることで得られるものがあるかどうか、誰かが知っているでしょうか?
CIImage