2012-04-03 3 views
1

UIImageViewがイメージを適切に拡大するという印象を受けましたが、正しく理解すればわかりません。だから私は2つの場所にイメージを持っています。小さい領域では、画像が鮮明ではありません。この小さな領域のために私が何をしているのですか:UIViewContentModeAspectFitでUIImageViewイメージが鮮明でない

UIImageView *container = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; 
UIImageView *graphic = [[[UIImageView alloc] initWithFrame:CGRectMake(10, 10 , 120, 120)] autorelease]; 
[graphic setImage:[UIImage imageNamed:@"test.png"]]; 
graphic.contentMode = UIViewContentModeScaleAspectFit; 
[container addSubview:graphic]; 
    UIGraphicsBeginImageContextWithOptions(container.bounds.size, NO, 1.0); 
    [container.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

私は基本的にコンテナのサブビューとして私のグラフィックを持っています。再生中のカードの画像と同じように、このメソッドはviewImageを返します。しかし、私がトランプカードの画像を見ると、大きな画像ビューで画像を撮ったときに、それ以外のところで画像が鮮明でなくなります。これには理由がありますか?ありがとう。

鮮明な第一の画像、: enter image description here

第二の画像、ないようぱりっと: enter image description here

+0

この方法を使用してイメージのサイズを変更するだけですか?あなたのニーズを達成するための標準的な方法があるかもしれないので、私たちは一歩前進して、このコードで全体的な目標について話すことができます。 – Sam

+0

@Sam私がこのプロジェクトに参加することから知っている限り、目標はトランプカードの上にイメージでトランプカードの感触を作り出すことでした。私は彼らがカードとテキストを使ってAppleのカバーフローをエミュレートしようとしていたと思う。したがって、UIImageViewが返されると、それらはキャンバス上で動かすことができます。それは役に立ちますか? Thxもう一度サム。 – Crystal

答えて

0

シンプル。 UIGraphicsBeginImageContextWithOptions呼び出しでscaleFactorを1.0に設定しました。これは、あなたが網膜スクリーンを備えたデバイス上で走っている場合、あなたのアートが50%のサイズでレンダリングされる結果になります。 1.02.0以上に変更することはできますが、クラスからスケール係数を取得することができます。

+0

スケールファクタを変更しようとしましたが、画像は同じように見えます。スケールファクタは、使用しているバックグラウンドコンテナのイメージビューを含め、ビットマップ全体をレンダリングするようです。私は値で遊ぶことでそれを見ることができます(減少すると本当にぼんやりします)。スケールファクターを大きくすると、グラフィックのイメージビューがきれいになりません。私は行方不明の何か他にありますか?ありがとう。 – Crystal

+0

正確な問題を詳しく見るためにサンプル画像を投稿できますか? – Sam

+0

さらに、スケール係数を0に設定してコンテキストを設定してみてください。これにより、最も適切なスケール係数が自動的に選択されます。 – Sam

関連する問題