大きな空白/コード生成されたテクスチャにPNGをコピーするための最良の方法? (のOpenGL ES 1.1 / iPhone)

StackOverflow https://stackoverflow.com/questions/521483

  •  22-08-2019
  •  | 
  •  

質問

私は、テクスチャマップ/ iPhone上で操作したい320x480のPNGを持っていますが、これらの寸法は、明らかに2のべき乗でない私はすでに320×480と黒い背景である512×512 PNGに私のテクスチャマップの操作アルゴリズムをテスト画像は、原点を中心と、その上に重ねられた(左下隅(0,0))320x480の領域を適切に配向されている場合/中心/ iPhoneの画面上にスケーリングされます。

私が適用できるように、2つが1つのテクスチャとして組み合わせてなるように、私は320x480の元画像を撮影し、512x512のテクスチャは、コード内で生成された空白/黒の背景に適用することができますポイントに進捗私が今やりたいです私は512×512試験に使用する頂点とテクスチャ座標。これは、最終的に捕捉されたカメラと、カメラロールソース画像などに使用される。

任意の考え? (GLのUTILツールキットなどを使用せずにOpenGL ES 1.1でなければならない。)。

おかげで、 アリ

役に立ちましたか?

解決

Iが機能することが分かってきた一つの方法は、単に現在のコンテキストに両方の画像を描画した後、得られた合成画像を抽出することです。よりefficentかもしれ以上のOpenGLを目指している別の方法はありますか?

// CGImageRef for background image
// CGImageRef for foreground image

// CGSize for current context

// Define CGContextRef for current context

// UIGraphicsBeginImageContext using CGSize

// Get value for current context with UIGraphicsGetCurrentContext()

// Define 2 rectangles, one for the background and one for the foreground images

// CGContextDrawImage(currentContext, backgroundRect, backgroundImage);
// CGContextDrawImage(currentContext, foregroundRect, foregroundImage);

// UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();

// spriteImage = finalImage.CGImage();

// UIGraphicsEndImageContext();

この時点で、テクスチャ用の画像ソースとしてspriteImageを使用するように進むことができ、それは例えば320×480 PNGブランク512×512 PNGの組み合わせになります。

私はコード内で生成された画像を512×512のブランクPNGを置き換えますが、これは作業を行います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top