0

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

画像を回転させた後、回転画像をマージする方法は?私は以下のコードを使用しています。画像の回転前に問題なく動作します。この問題を修正する方法。私を助けてください。前もって感謝します。

CGRect backgroundImageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
CGRect foregroundImageRect = CGRectMake(rsImageView.frame.origin.x, rsImageView.frame.origin.y, rsImageView.frame.size.width, rsImageView.frame.size.height);

[backgroundImageView.image drawInRect:backgroundImageRect];
[rsImageView.image drawInRect:foregroundImageRect];
overlappedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
4

2 に答える 2

1

このメソッドを追加して、回転後にこれを呼び出します。

-(UIImage *)getMergedImage
{
 UIImage mergedImage;
 UIGraphicsBeginImageContext(backgroundImageView.frame.size)
 [backgroundImageView.layer  renderInContext:UIGraphicsGetCurrentContext];//bacgroundImageView here
 UIImage overLappedImage = [self getOverlappedImage];
 if(overLappedImage)
 {
   //CGRectMake(0,0,rsImageView.frame.width,rsImageView.frame.height)
   [overLappedImage drawInRect:rsImageView.frame blendMode:kCGBlendModeNormal alpha:0.8];//TopMostImageView here
 }
 mergedImage = UIGraphicsGetImageFromCurrentImageContext(); 
 UIGraphicsEndImageContext();
 return mergedImage;
}

このメソッドを追加して、重複した画像を取得します。

-(UIImage *)getOverlappedImage
{
  UIImage overlappedImage;
  UIGraphicsBeginImageContext(rsImageView.frame.size)
  [rsImageView.layer renderInContext:UIGraphicsGetCurrentContext]; //TopMostImageView here
  overlappedImage = UIGraphicsGetImageFromCurrentImageContext(); 
  UIGraphicsEndImageContext();
  return overlappedImage;
}
于 2012-09-13T05:32:43.467 に答える
0

デバイスの向きを確認したい場合は、このコードを使用してください

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
    toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
    //Your cgrectmake for landscape
}
else
{
    //Your cgrectmake for Portrait
}
}
于 2012-09-13T05:32:01.627 に答える