在ios中以png格式保存签名图像
我有用于签名的可绘制文本, 我希望将此上下文保存为png格式并带有特定路径,但我无法执行此操作。我希望将绘图图像保存为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(
**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];