私は現在取り組んでいCIPerspectiveTransform
ますが、正確な動作を見つけることができないようです。少なくとも私はアイデアを持っていますが、それについてはよくわかりません。ここでわかったことを公開します。
Core Image Filter Referenceでわかるように、type には 4 つの属性がありますCIVector
。
inputTopLeft
A CIVector object whose attribute type is CIAttributeTypePosition and whose display name is Top Left.
Default value: [118 484]
inputTopRight
A CIVector object whose attribute type is CIAttributeTypePosition and whose display name is Top Right.
Default value: [646 507]
inputBottomRight
A CIVector object whose attribute type is CIAttributeTypePosition and whose display name is Bottom Right.
Default value: [548 140]
inputBottomLeft
A CIVector object whose attribute type is CIAttributeTypePosition and whose display name is Bottom Left.
Default value: [155 153]
ご覧のとおり、デフォルト値はかなり恣意的です。しかし、それは与えられた画像に遠近法の効果を与えます。ただし、それが実際にどのように機能するかを知ることは、実際には役に立ちません。そこで、これらの任意の値を選び始めましCIVector
た。そして、数回試した後、次のことがわかりました:
[perspectiveFilter setValue:[CIVectorWithX:0 Y:200] forKey:@"inputTopLeft"];
[perspectiveFilter setValue:[CIVectorWithX:200 Y:200] forKey:@"inputTopRight"];
[perspectiveFilter setValue:[CIVectorWithX:0 Y:0] forKey:@"inputBottomLeft"];
[perspectiveFilter setValue:[CIVectorWithX:200 Y:0] forKey:@"inputBottomRight"];
私の画像に適用されても何もしません(私のUIImageView
は a のサブビューUIScrollView
です)。そのため、値を 600x600 に変更しましたが、結果の画像のサイズ以外は何も変わっていないことがわかりました。最初のケースでは 200x200、次に 600x600。
ここに私の質問があります: iPhone デバイスで作業していて、完全に長方形であるのに、なぜ私の画像は正方形の 200x200 サイズで印刷されるのでしょうか?