どのようにiphoneアルバムの回転イメージを保存するには?

ビューをクリックすると画像が回転しますが、画像は回転していますが、回転した画像はiPhoneのアルバムに保存されていません。

保存ボタンをクリックすると、前の画像がアルバムに保存されています。

- (void) touchesBegan:(NSSet *)_touches withEvent:(UIEvent *)_event
  {
   UITouch* touch = [_touches anyObject];
   CGPoint location = [touch locationInView:m_block];
   m_locationBegan = location;
   }

  - (void) touchesMoved:(NSSet *)_touches withEvent:(UIEvent *)_event
   {
    UITouch* touch = [_touches anyObject];
    CGPoint location = [touch locationInView:m_block];
    [self updateRotation:location];  
   }

- (void) touchesEnded:(NSSet *)_touches withEvent:(UIEvent *)_event
    {
   UITouch *touch=[_touches anyObject];
   CGPoint location = [touch locationInView:m_block];
   m_currentAngle = [self updateRotation:location];    
 }
 - (float) updateRotation:(CGPoint)_location
   {
     float fromAngle = atan2(m_locationBegan.y-m_block.center.y, m_locationBegan.x-m_block.center.x);
    float toAngle = atan2(_location.y-m_block.center.y, _location.x-m_block.center.x);
     float newAngle = wrapd(m_currentAngle + (toAngle - fromAngle), 0, 2*3.14);

     CGAffineTransform cgaRotate = CGAffineTransformMakeRotation(newAngle);
     m_block.transform = cgaRotate;
     int oneInFifty = (newAngle*50)/(2*3.14);
     m_label.text = [NSString stringWithFormat:@"Angle: %f 1in50: %i", newAngle, oneInFifty];
      return newAngle;
    }
  - (IBAction)saveImageToAlbum
     {
   [self.library saveImage:m_block.image toAlbum:@"My" withCompletionBlock:^(NSError *error) {
      if (error!=nil) {
        NSLog(@"Big error: %@", [error description]);
    }
  }];

UIImage *image = m_block.image;
NSUserDefaults * user= [NSUserDefaults standardUserDefaults] ;
[user setObject:UIImagePNGRepresentation(image) forKey:@"foo"];
[user synchronize];
[self dismissViewControllerAnimated:YES completion:nil];

   }
2

1 答え

私はあなたがカスタムUIViewまたはUIImageViewを使用していると思います。

次のコードで、どのビューの現在の外観を保存することもできます:

+ (UIImage *) imageWithView:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return img;
}

I get this from : How to capture UIView to UIImage without loss of quality on retina display

これは私にとってとてもうまくいっています。

ではごきげんよう...

0
追加された
このコードを保存してみましたか?何を手に入れますか?
追加された 著者 CRDave,
仕事はしていませんが、イメージに入るのは何ですか?空の画像前の画像?または何らかのエラー
追加された 著者 CRDave,
何のエラー?どのように私はエラーを知らずに助けることができますか?
追加された 著者 CRDave,
これはコードエラーではありません。これはビルドエラーです。 Uは "リンカーコマンドが失敗しました"
追加された 著者 CRDave,
私はあなたが私のコードでどのようにその画像にその角度を渡すことができるように角度を得ていますか?
追加された 著者 IOSDev,
私はこのコードを試しているが、私はコードを再調整していることがわかります。その角度を保存する必要がありますどのように私の問題を解決してください。
追加された 著者 IOSDev,
それを実行していないことはエラーを出しています..
追加された 著者 IOSDev,
アーキテクチャi386の未定義のシンボル: "_OBJC_IVAR _ $ _ UIViewController._view"、ViewController.oのViewController captureViewで参照されていますld:アーキテクチャi386のシンボルが見つかりませんclang:error:linkerコマンドが終了コード1で失敗しました呼び出しを見る-v
追加された 著者 IOSDev,