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

Posted

技术标签:

【中文标题】在ios中以png格式保存签名图像【英文标题】:Save signature image in png format in ios 【发布时间】:2016-05-04 06:59:23 【问题描述】:

我有用于签名的可绘制文本, 我希望此上下文以具有特定路径的 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;

【问题讨论】:

***.com/a/5262262/2168557 【参考方案1】:
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];

【讨论】:

感谢所有人..谁帮助我...认真节省很多时间..@Abhishek 和 @Madhu【参考方案2】:

这样试试

- (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 是否有图像参考? :-我在下一个视图控制器中检查了我的 iamge 显示,但它保存在哪里,我不知道。 我在我的 mac 中签入了文档,但没有图像..给我解决方案 参考此链接并打印保存的图像路径。在该路径中检查后。***.com/questions/11219202/…

以上是关于在ios中以png格式保存签名图像的主要内容,如果未能解决你的问题,请参考以下文章

IOS:PNG文件包含无效签名:XCode/Organizer/Archive/Validate中的Icon.png

用c读取PNG文件

WPF学习笔记——做一个简单的电子签名板

电子签名怎么使用?

在iOS中以编程方式压缩PNG图像

怎么样把PDF文件中的电子签名提取出来转换成PDF格式?