Установить фон с помощью изображений с фотопленки

#objective-c #ios

#objective-c #iOS

Вопрос:

Я хочу знать, как я могу изменить фон моего приложения для обработки изображений с помощью изображений с фотопленки. Есть идеи??? Как получить контуры фотопленки или что-то в этом роде!!!

Спасибо!!!!

Ответ №1:

в следующем коде используется кнопка на панели инструментов, при нажатии на которую открывается фотопленка, а затем вы сможете выбрать изображение для установки

Начните с добавления фреймворка MobileCoreServices

добавьте следующий код в файл .h

     #import <UIKit/UIKit.h>
#import <MobileCoreServices/MobileCoreServices.h>

@interface cameraViewController : UIViewController
<UIImagePickerControllerDelegate,
UINavigationControllerDelegate, UIPopoverControllerDelegate>

@property (nonatomic) BOOL newMedia;
@property (nonatomic, strong) IBOutlet UIImageView *imageView;
@property (nonatomic, strong) UIPopoverController *popoverController;
@property (nonatomic, strong) IBOutlet UIToolbar *toolbar;

- (IBAction)useCameraRoll: (id)sender;
@end
  

Добавьте следующий код в файл .m:

 @synthesize imageView, popoverController, toolbar, newMedia;

    - (IBAction) useCameraRoll: (id)sender
{
    if ([self.popoverController isPopoverVisible]) {
        [self.popoverController dismissPopoverAnimated:YES];
    } else {
        if ([UIImagePickerController isSourceTypeAvailable:
             UIImagePickerControllerSourceTypeSavedPhotosAlbum])
        {
            UIImagePickerController *imagePicker =
            [[UIImagePickerController alloc] init];
            imagePicker.delegate = self;
            imagePicker.sourceType =
            UIImagePickerControllerSourceTypePhotoLibrary;
            imagePicker.mediaTypes = [NSArray arrayWithObjects:
                                  (NSString *) kUTTypeImage,
                                  nil];
            imagePicker.allowsEditing = NO;

            self.popoverController = [[UIPopoverController alloc]
                initWithContentViewController:imagePicker];

            self.popoverController.delegate = self;

            [self.popoverController 
                presentPopoverFromBarButtonItem:sender
                permittedArrowDirections:UIPopoverArrowDirectionUp
                animated:YES];

             newMedia = NO;
        }
    }
}



#pragma mark -
#pragma mark UIImagePickerControllerDelegate

-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self.popoverController dismissPopoverAnimated:true];
    NSString *mediaType = [info
           objectForKey:UIImagePickerControllerMediaType];
    [self dismissModalViewControllerAnimated:YES];
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        UIImage *image = [info
            objectForKey:UIImagePickerControllerOriginalImage];

        self.imageView.image = image;
        if (newMedia)
            UIImageWriteToSavedPhotosAlbum(image,
               self,  
               @selector(image:finishedSavingWithError:contextInfo:),
               nil);
    }
    else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
    {
                // Code here to support video if enabled
        }
}

-(void)image:(UIImage *)image
finishedSavingWithError:(NSError *)error
 contextInfo:(void *)contextInfo
{
    if (error) {
        UIAlertView *alert = [[UIAlertView alloc]
           initWithTitle: @"Save failed"
           message: @"Failed to save image"
           delegate: nil
           cancelButtonTitle:@"OK"
           otherButtonTitles:nil];
        [alert show];
    }
}


-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
   [self dismissModalViewControllerAnimated:YES];
}
  

Добавьте следующее в viewDidUnload:

 - (void)viewDidUnload {
    self.imageView = nil;
    self.popoverController = nil;
    self.toolbar = nil;
}
  

Не забудьте подключить imageview к вашему изображению, а кнопку cameraroll — к вашей кнопке.

Ответ №2:

Проверьте документы для библиотеки ресурсов.

Ответ №3:

-(недействительный) uourCallingMethod{ UIImage *img = [UIImage imageNamed: [NSString stringWithFormat:@»image.jpg «, i]]; UIImageWriteToSavedPhotosAlbum(img, nil, nil, ноль); }

  • (недействительно) изображение: (UIImage *) завершилось сохранение изображения с ошибкой: (NSError *) ошибка contextInfo: (недействительно *) contextInfo{

}