8

「最も近い隣人」のリサンプリングを使用して、フォトショップのようにUIImageのサイズを変更する方法が必要です。いくつか探していましたが、見つけたのは、バイキュービックリサンプリングの品質を向上させるためのCoreGraphicsの厚さに関するものでした。私のアプリにはピクセルスタイルのデザインがあり、ピクセルごとに作成して5倍の乗数で拡大するものがたくさんあります(時間がかかるので、Photoshop用のスクリプトを書くこともできます)。例えば:

ここに画像の説明を入力してください>>ここに画像の説明を入力してください

しかし、リサンプリングの結果のように、これは本当に必要ありません。

ここに画像の説明を入力してください

多分誰もが私に正しい方法を教えてくれるでしょう。

4

1 に答える 1

20

画像をグラフィックス コンテキストに描画する場合、次のように、グラフィックス コンテキストの補間品質を「なし」に設定できます (例: ビューのdrawRectメソッド内):

CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetInterpolationQuality(c, kCGInterpolationNone);
UIImage *image = [UIImage imageNamed:@"pixels.png"];
[image drawInRect:self.bounds];

結果が として必要な場合UIImage(たとえば、組み込みの UI コントロールに割り当てる場合)、これを行うことができますUIGraphicsBeginImageContext(その例はたくさんあります)。

magnificationFilter別の方法は、画像ビューのレイヤーのプロパティを設定することです:

pixelatedImageView.layer.magnificationFilter = kCAFilterNearest;

画像を再描画する必要がないため、これはおそらく高速でメモリ効率が高くなります。

于 2012-07-12T17:37:37.373 に答える