在ios中以png格式保存签名图像

在ios中以png格式保存签名图像,ios,objective-c,nsdata,Ios,Objective C,Nsdata,我有用于签名的可绘制文本, 我希望将此上下文保存为png格式并带有特定路径,但我无法执行此操作。我希望将绘图图像保存为png格式,并且可以在任何位置使用 **Code for png format and path** NSData *imageData = UIImagePNGRepresentation(_SignatureView.signatureImage); NSString *imagePath = [[NSSearchPathForDirectoriesInDomains(

我有用于签名的可绘制文本, 我希望将此上下文保存为png格式并带有特定路径,但我无法执行此操作。我希望将绘图图像保存为png格式,并且可以在任何位置使用

**Code for png format and path**

NSData *imageData = UIImagePNGRepresentation(_SignatureView.signatureImage);

 NSString *imagePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"/imageName.png"];

[imageData writeToFile:imagePath atomically:YES];

_SignatureView is a property and signatureImage is a method 

**code of signature image method**

- (UIImage *)signatureImage
{
    if (!self.hasSignature)
        return nil;


    UIImage *screenshot = [self snapshot];


    return screenshot;
}
像这样试试

- (void)saveImage: (UIImage*)image
  {
    if (image != nil)
    {
       NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
       NSUserDomainMask, YES);
       NSString *documentsDirectory = [paths objectAtIndex:0];
       NSString* path = [documentsDirectory stringByAppendingPathComponent:
      [NSString stringWithString: @"test.png"] ];
      NSData* data = UIImagePNGRepresentation(image);
      [data writeToFile:path atomically:YES];
      }
  }
要获得图像,请使用以下代码

 - (UIImage*)loadImage
 {
   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
   NSUserDomainMask, YES);
   NSString *documentsDirectory = [paths objectAtIndex:0];
   NSString* path = [documentsDirectory stringByAppendingPathComponent:
   [NSString stringWithString: @"test.png"] ];
   UIImage* image = [UIImage imageWithContentsOfFile:path];
   return image;
 }

@madhumita感谢您的帮助。但我仍然无法保存图像。您是否检查了您的_SignatureView.signatureImage是否有图像参考?:-我检查了下一个视图控制器中的图像显示,但它保存在哪里,我不知道。我在mac上签入了文档,但没有图像。给我解决方案参考此链接并打印保存的图像路径。在该路径中进行检查后。感谢所有帮助我的人…真的节省了很多时间。@Abhishek和@Madhu
NSString *docPath=  @"/Users/.../.../";
NSString *filePath=[docPath stringByAppendingPathComponent:@"PdfFileName.pdf"];

NSMutableData pdfData=[NSMutableData data];
CGRect bounds = CGRectMake(0, 0, 612, 792);
UIGraphicsBeginPDFContextToData(pdfData, bounds, nil);

CGContextRef pdfContext = UIGraphicsGetCurrentContext();
UIGraphicsBeginPDFPage();

[YourSignature.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();
[pdfData writeToFile:filePath atomically:YES];