1

私は初めてで、画面OpenGLにシンプルに描画するためのコードスニペットを探してUIImageいます-まさにUIImageViewそうです。

インターネットにはこのようなコード サンプルがたくさんありますが、それらはすべて画像に少しスムージングを追加し、(私のコードで) のOpenGLView上に を追加するUIImageViewと、ユーザーはこの瞬間を見ることができます。のテキストがUIImage少し滑らかになります。

4

1 に答える 1

2

既存のソリューションの場合、オープン ソースGPUImageフレームワークの GPUImageView を GPUImagePicture と組み合わせて使用​​して、UIImage を取り込むことができます。この表示を実行するコードは次のようになります。

UIImage *inputImage = [UIImage imageNamed:@"image.png"];
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];
GPUImageView *imageView = (GPUImageView *)self.view;
[stillImageSource addTarget:imageView];
[stillImageSource processImage];

このフレームワークのポイントは、OpenGL ES ベースの画像およびビデオ処理を実行することなので、これはフレームワークで実行できる最も初歩的なことです。フィルターやその他の種類の画像処理操作を、画像からビューへのチェーンで追加できます。

この OpenGL ES ベースの画像ビューには、プロパティで設定できる 3 つの異なる塗りつぶしモードがありますfillModeが、デフォルトでは、画像を引き伸ばしてビューを塗りつぶします。このプロパティを使用して、UIImageView の塗りつぶしモードに一致させることができるはずです。

GPUImageView のコードを調べて、テクスチャをどのように取り込み、これらのさまざまな塗りつぶしモードと可能な画像回転に基づいて表示するかを確認できます。基本的には、2 つの三角形を使用して四角形を作成し、パススルー シェーダーを使用してその四角形内にテクスチャを表示するだけです。

表示されるビューとはサイズが異なるこれらのビュー内に画像を配置している場合、表示されるスムージングの違いは、GPU でテクスチャがフィルター処理される方法と Core Graphics が画像を縮小する方法の違いに起因する可能性があります。

于 2012-05-15T23:32:55.710 に答える