私は初めてで、画面OpenGL
にシンプルに描画するためのコードスニペットを探してUIImage
います-まさにUIImageView
そうです。
インターネットにはこのようなコード サンプルがたくさんありますが、それらはすべて画像に少しスムージングを追加し、(私のコードで) のOpenGLView
上に を追加するUIImageView
と、ユーザーはこの瞬間を見ることができます。のテキストがUIImage
少し滑らかになります。
既存のソリューションの場合、オープン ソース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 が画像を縮小する方法の違いに起因する可能性があります。