Как сохранить изображение с поворотом в альбоме 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
nl ja de

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 captureView] в ViewController.o ld: символы не найдены для архитектуры i386 clang: ошибка: команда компоновщика не выполнена с кодом выхода 1 (используйте -v, чтобы увидеть вызов)
добавлено автор IOSDev, источник