1

iPhoneでテクスチャマップ/操作したい320x480 PNGがありますが、これらの寸法は明らかに2のべき乗ではありません.320x480画像が重ねられた黒い背景である512x512 PNGでテクスチャマップ操作アルゴリズムをすでにテストしました原点 (左下隅 (0,0)) を中心に、iPhone 画面上で 320x480 領域が適切に方向付け/中央揃え/スケーリングされます。

私が今やりたいことは、320x480 のソース画像を取得し、それらをコードで生成された空白/黒の背景 512x512 テクスチャに適用して、2 つを 1 つのテクスチャとして結合し、頂点と512x512 テストで使用したテクスチャ座標。これは最終的に、カメラでキャプチャした画像やカメラロールの画像などに使用されます。

何かご意見は?(GL util ツールキットなどを使用しない OpenGL ES 1.1 用である必要があります)。

ありがとう、アリ

4

1 に答える 1

0

私が見つけた方法の 1 つは、両方の画像を現在のコンテキストに単純に描画し、結果として結合された画像を抽出することです。より効率的な 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 をテクスチャの画像ソースとして使用することができます。たとえば、空白の 512x512 PNG と 320x480 PNG の組み合わせになります。

512x512 の空白の PNG をコードで生成された画像に置き換えますが、これは機能します。

于 2009-02-06T19:14:02.073 に答える