2012-02-16 14 views
0

私は画像ビューを持っています。この画像ビュー内の画像は、あなたがフォトロールから選択するためのものです。私もボタンがあります。このボタンをクリックすると、addSubviewコードでビューに画像が追加されます。この画像はドラッグ可能で、サイズ変更可能で回転可能です。画像を描く画像を縮小する

問題を1つ終了すると、私はdrawInRectメソッドを使用します。これにより、すべてのレイヤーが互いに描画され、イメージが作成されます。しかし、レイヤーは間違った場所にあり、サイズが間違っています。回転もしません。私はこれを修正する方法を知らない、コードの一部はこのテキストの下にあります。元の画像サイズを維持して、レイヤーを同じ場所に描画することは可能ですか?そうでない場合は、イメージビューにドラッグして、新しいサイズを作成して、結果を得る方法はありますか?そして、どのように回転されたイメージを描くのですか?

UIGraphicsBeginImageContext(imageView2.image.size);  
// Draw image1 
[imageView2.image drawInRect:CGRectMake(0, 0, imageView2.image.size.width, imageView2.image.size.height)];  
// Draw image2 
for(UIImageView *viewsSub in [self.imageViewer subviews]) 
{    
    [viewsSub.image drawInRect:CGRectMake(viewsSub.frame.origin.x, viewsSub.frame.origin.y, viewsSub.frame.size.width, viewsSub.frame.size.height)]; 
}  
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();  
pld.imageChosen2 = resultingImage;  
UIGraphicsEndImageContext(); 

答えて

0

実際のイメージビュー(サブビューを含む)の「スクリーンショット」を撮るようなものが欲しいですか?

私はこのコードを使って同様のことをしていますが、あなたがうまくいくかどうかわかりません。

 - (UIImage *)screenshot { 
     CGFloat scale = [UIScreen screenScale]; 

     if(scale > 1.5) { 
      UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, scale); 
     } else { 
      UIGraphicsBeginImageContext(self.frame.size); 
     } 
     [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
     UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
     return screenshot; 
} 

このメソッドは、追加するすべてのサブビューを含むイメージビュー内に追加する必要があります。

+0

それはうまくいきます、ありがとう! –