2016-11-08 2 views
0

Итак, есть ли способ сохранить отредактированное изображение, не представляя пользователя NSSavePanel?Сохранение какао с помощью ImageKit без NSSavePanel

То есть многие приложения предлагают пользователю возможность «Сохранить» или «Сохранить как ...», где «Сохранить» просто перезаписывает файл, сохраняющий имя файла, и «Сохранить как ...» представляет полную NSSavePanel со всеми опциями.

У меня есть приложение, которое вызывает ImageKit, чтобы разрешить редактирование изображения, и я бы хотел, чтобы пользователь нажал кнопку или клавишу, чтобы просто сохранить, не требуя панели. Нет диалога, нет уведомлений, просто нажмите «Сохранить», а файл изображения будет перезаписан новым.

Я знаю, как сохранить текстовый файл таким образом, но я не уверен в отредактированном изображении из IKImageView.

Заранее благодарен!

ответ

0

Так что я просто обошел NSSavePanel все вместе и пошли прямо к GCImageDest:

- (IBAction)saveWithNoPanel: (id)sender 
{ 
    _saveOptions = [[IKSaveOptions alloc] initWithImageProperties: _imageProperties 
                 imageUTType: _imageUTType]; 

    NSString * url=[[NSUserDefaults standardUserDefaults] objectForKey:@"photoPath"]; 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"yyyy"]; 
    NSString * yearString = [formatter stringFromDate:[NSDate date]]; 

    NSString * fileName = [[_imageWindow representedFilename] lastPathComponent]; 
    //NSLog(@"Filename: %@",fileName); 
    NSString * photoUrl =[NSString stringWithFormat:@"%@%@%@%@%@",url,@"/",yearString,@"/",fileName]; 
    //NSLog(@"photourl: %@",photoUrl); 

    NSString * newUTType = [_saveOptions imageUTType]; 
    CGImageRef image; 

    image = [_imageView image]; 

     if (image) 
     { 
      NSURL * url =[NSURL fileURLWithPath: photoUrl]; 
      //NSLog(@"URL: %@",url); 

      CGImageDestinationRef dest = CGImageDestinationCreateWithURL((CFURLRef)url, 
                     (CFStringRef)newUTType, 1, NULL); 

      if (dest) 
      { 
       CGImageDestinationAddImage(dest, image, 
              (CFDictionaryRef)[_saveOptions imageProperties]); 
       CGImageDestinationFinalize(dest); 
       CFRelease(dest); 
      } 
     } else 
     { 
      NSLog(@"*** saveImageToPath - no image"); 
     } 
    [pwPhotoPathTextField setStringValue:[NSString stringWithFormat:@"%@%@",photoUrl]]; 
    [_imageWindow orderOut:self]; 
    } 
Смежные вопросы