2009-11-16 14 views
6

私はそれは成功だが、私は使用CALayerのrenderInContext

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity; 
rotationAndPerspectiveTransform.m34 = 1.0/-500; 

を使用する「renderInContextを:コンテキストは、」文脈からCGImageを取得し、私は画像の効果が変更されない発見しました!

CALayerからこのエフェクトイメージを取得するにはどうすればよいですか?

答えて

2

私のオリジナルの返信は次のとおりです。それは私がそれを投稿した時点で有効でしたが、アップルはUIGetScreenImageの使用をもう許可していません。 iOS4をの打ち上げ後、私の知る限りでは、あなたのアプリは、あなたが使用している場合は拒否されます+ 3D変換してレイヤーをレンダリングする方法を何も代替はありませんUIGetScreenImage


renderInContextのiPhoneの開発者向けドキュメントから

はまた、3Dを使用する層 変換がレンダリングされていない、またbackgroundFiltersを指定 層、 フィルタ、compositingFilter、またはマスク 値です。

したがって、renderInContextは、3D変換が適用されているレイヤーをレンダリングするために必要な機能ではありません。

あなたができることは、UIGetScreenImageです。これは基本的にスクリーンショットを与え、このスクリーンショットからイメージを抽出することができます。

+2

UIGetScreenImageは許可されていません。私はちょうどアップルからこの専用機能の使用をやめて、-renderInContext:(iOs 3.xの場合)またはAV Foundation AVCaptureSessionと関連するクラス(iOS 4の場合)を使用することを頼むメールを受け取りました。 – vfn

+0

今日はAppleから同じメールを受け取りました。私の場合はあなたのものと似ています。どうやら私たちはiOS3を使っているすべてのユーザーにキスしたり、さようならキスしてキャプチャする必要があります。 – SpaceDog

+1

私のアプリのうちの1つがUIGetScreenImage()を使って拒否されました... iOS4ではテストされましたが、renderInContextでも3D変換はレンダリングされませんでした。正直なところ、 –