- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我将新收到的 PDF 文档的缩略图呈现到文档目录中。
我正在使用以下代码:
CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("thedoc.pdf"), NULL, NULL);
CGPDFDocumentRef bookPDF = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
UIGraphicsBeginImageContext(CGSizeMake(100, 130));
NSUInteger totalNum = CGPDFDocumentGetNumberOfPages(bookPDF);
CGContextRef context = UIGraphicsGetCurrentContext();
for(int i = 0; i < totalNum; i++ ) {
CGRect arect = CGRectMake(0,0,200,282);
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0, 141);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetGrayFillColor(context, 1.0, 1.0);
CGContextFillRect(context, arect);
// Grab the first PDF page
CGPDFPageRef page = CGPDFDocumentGetPage(bookPDF, i + 1);
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, arect, 0, true);
// And apply the transform.
CGContextConcatCTM(context, pdfTransform);
CGContextDrawPDFPage(context, page);
// Create the new UIImage from the context
UIImage* thumbnailImage = UIGraphicsGetImageFromCurrentImageContext();
if (thumbnailImage == nil) {
NSLog(@"ERROR during creation of PNG");
}
// SAVE THE IMAGE TO DOCUMENTS-DIRECTORY
NSString *pngPath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@/thumbPage%i.png",theLocalFolder ,i]];
// Write image to PNG
BOOL writtenBool = [UIImagePNGRepresentation(thumbnailImage) writeToFile:pngPath atomically:YES];
// END SAVE THE IMAGE TO DOCUMENT-DIRECTORY
CGContextRestoreGState(context);
NSLog(@"Rendering PDF-Thumbnail %i (%i): %@", i, writtenBool, [NSString stringWithFormat:@"%@/thumbPage%i.png",theLocalFolder ,i]);
}
Console 中没有错误,但 PNG 未存储到 documents-Directory 中。 bool
writtenBool
为“0”,表示写操作不成功。我不知道为什么。我把路径写在 png路径也到控制台,路径是正确的。如果我打开终端并写入
open <<copyed path from console>>
它会在 finder 中打开正确的路径。
什么会导致它不起作用?我查看了 api,但似乎没有
error:
对于 UIImagePNGRepresentation:writeToFile:
感谢您的帮助!
最佳答案
UIImagePNGRepresentation(thumbnailImage)
返回一个 NSData
对象
对于NSData
对象,你可以使用这些方法:
writeToFile:atomically:
,
writeToFile:options:error:
,
writeToURL:atomically:
,
writeToURL:options:error:
,
因此,您可以尝试使用类似 BOOL writtenBool = [UIImagePNGRepresentation(thumbnailImage) writeToFile:pngPath options:NSDataWritingAtomic error:&error];
的代码来查看发生了什么。
关于ios - UIImagePNGRepresentation writeToFile 可以捕获错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8360273/
我有一些代码将一些 PDFDocument 对象写入用户选择的目的地。这很好用。 也许其中一些文件(由用户选择)可能非常大(可能数百兆字节),现在我想知道是否有可能取消当前的 writeToFile:
我在我的代码中使用 NSDictionary 的 writeToFile 属性,我正在尝试将字典更新到文档目录,如下所示, NSDictionary *revisionDict = [NSDictio
func fetchFromInternet(){ let i = Int(DISPATCH_QUEUE_PRIORITY_HIGH.value) let que = dispatch
我有以下代码: NSString *errorStr = nil; NSData *plistData = [NSPropertyListSerialization dataFromPropertyL
我正在将一些数据写入我的文档目录,我想知道是否有一种方法可以判断我的 writeToFile 方法何时完成以及我正在创建的文件是否已完全创建。提前致谢 这是我正在调用的方法 我只是在寻找一种方法,无论
我不明白为什么它总是失败。它返回NO。我整个下午都在搜索这个问题,但没有任何解释为什么或如何解决。调用 [[NSFileManager defaultManager] isWritableFileAt
我有一个正在更改的 plist: NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.pl
每次我使用相机拍照,然后保存时,图像总是横向的。这意味着我的 Xib 中的 UIImageView 是错误的。它的肖像 - 这就是我想要和期望的。我可以通过将图像旋转 90 度来纠正此问题,但即使如此
我试图将一个数组(其中包含一些字典)保存到 plist 文件中,但失败了。我没有收到任何错误。我在代码中使用另一个数组执行了与上面完全相同的几行,并且有效。.我不明白为什么它不保存文件。 这是我保存文
只要方法调用发生在同一应用程序运行时,似乎 writeToFile 方法就会附加到当前存在的文件路径。这是真的? 是否有任何其他方法可以确保在应用程序 session 运行时附加到现有文件?我希望在新
我正在尝试用 swift 将内容写入文件 let jsonResult = try! NSJSONSerialization.JSONObjectWithData(response.data, o
在我的 iPhone 应用程序中,我正在从网络上下载一些图像。它是否阻塞 UI 线程并不重要,事实上它需要阻塞 UI 线程直到完全下载。完成后,我通知 UI 唤醒并显示它们。 我的(简化的)代码是这样
我正在将我的 UITextView 文本保存到文件 test.txt 中 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocument
// directoryPath is a URL from another VC @IBAction func saveButtonTapped(sender: AnyObject) {
我目前正在编写一个简单的 IOS 应用程序,它将任务保存到表中。我想扩展该应用程序并允许人们与其他人共享“列表”。在将其保存到 XML 或 URL 之前,我想使用 writeToFile:atomic
我已成功使用 Plist 在我的 iPhone 应用程序中读取和写入数据。 Plist 由数组中的字典组成。当我想附加字典时,我使用 writeToFile 方法。这很有效,但它会覆盖整个 Plist
每次按下保存按钮时,我都会尝试将图像保存到磁盘。这是我正在使用的代码: NSArray* documentDirectories = NSSearchPathForDirectoriesInDomai
我使用有效的字典运行以下代码,但仍然“未写入”: NSFileManager* fm = [[NSFileManager alloc] init]; __autoreleasing NSError
我将新收到的 PDF 文档的缩略图呈现到文档目录中。 我正在使用以下代码: CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundl
ios 声称文件已写入,但更改从未实际保存,就好像它们保留在缓冲区中一样。我需要冲洗什么的吗? - (void)viewDidLoad { [super viewDidLoad]; N
我是一名优秀的程序员,十分优秀!