2009-07-28 11 views
12

私は私が取り組んでいる小さなIPhoneアプリケーションを持っており、私はUIImageViewで画像を表示しています。 Aspect Fitモードを使用してスケールアップしています。私は補間/平滑化なしで画像のスケールを上げたい(私はそれがピクセル化されたように見せたい)。この行動を変える方法はありますか?UIImageViewスケーリング/補間

もう少し一般的な質問は私自身のスケーリングアルゴリズムを実装することができますか、または私が選択できる他のものがありますか?

答えて

20

あなたは最近傍フィルタにビューの層の上にmagnificationFilterプロパティを設定する必要があります:あなたが含まれているファイルの先頭に行

#import <QuartzCore/CALayer.h> 

が含まれていることを確認してください

[[view layer] setMagnificationFilter:kCAFilterNearest] 
+1

rekleの答えが言うように、setMagnificationFilter使用しているときには#import を追加してください: –

+1

素晴らしいことだと私の目的を達成したが、私は私が使用したときに、お願いしたいと思います'magnificationFilter = kCAFilterNearest'は、実際に画像の元のピクセルを拡大した、大きくて鋭いピクセルですか、何らかの処理によって生成されたものですか?ありがとうございます! – Suge

-2

これには2通りの方法があります。補間なしで再スケーリングアルゴリズムを実装することもできます。これがうまくいくならば、gimpやphotoshopのような別のアプリケーションでイメージを再スケーリングすることができます。これは、アプリケーションでサイズを動的に変更する必要がない限り機能します。

5

setMagnificationFilterを呼び出すか、コンパイルされません。

+0

QuartzCoreフレームワークをプロジェクトに追加します(グループとファイル - >追加 - >既存のフレームワーク - > QuartzCore.framework - >追加)。 – suda

0

スウィフト

imageView.layer.magnificationFilter = kCAFilterNearest 
imageView.layer.shouldRasterize = true