CGImageSourceCreateImageAtIndex返回nil

CGImageSourceCreateImageAtIndex返回nil

问题描述:

我想一个PDF文件转换为图像与此解决方案:CGImageSourceCreateImageAtIndex返回nil

CFURLRef urlRef = (CFURLRef)[NSURL fileURLWithPath:@"http://uat.okitoo.fr/document/document/s595_506cb1811852f/o_specimen-page-seule.pdf"]; 
CGImageSourceRef src = CGImageSourceCreateWithURL(urlRef, NULL); 
NSDictionary* options = [NSDictionary dictionaryWithObject:(id)[NSNumber numberWithInt:500] forKey:(id)kCGImageSourceThumbnailMaxPixelSize]; 
CGImageRef firstPage = CGImageSourceCreateImageAtIndex(src, 0, (CFDictionaryRef)options); 
UIImage* imagePDF = [UIImage imageWithCGImage:firstPage]; 
CGImageRelease(firstPage); 

我的pdf文件就可以了,但是当我尝试此代码,图像不会出现,我有此消息:“:ImageIO:CGImageSourceCreateImageAtIndex图像源参数为零”。我不明白..

我试着用其他的联系,但我也有同样的问题..

任何想法? 有没有其他方法可以将我的PDF文件转换为图像?

非常感谢!

您正在使用不正确的API来创建URL,你需要URLWithString:

CFURLRef urlRef = (CFURLRef)[NSURL URLWithString:@"http://uat.okitoo.fr/document/document/s595_506cb1811852f/o_specimen-page-seule.pdf"]; 

您当前使用的API是网址,以文件的本地文件系统上。

+0

你让我的一天!什么是初学者的错误!非常感谢:) –

+0

Sebastien你现在明白了为什么我们需要你问题中的真实代码来帮助你,并且不能解决你原来的问题...... – AliSoftware

正如消息所述,您的urlRef可能是nil

可能是因为您没有提到真正的完整路径而只是文件名,而且找不到文件。

如果您的PDF是应用程序包内的文件,请使用[[NSBundle mainBundle] pathForResource:@"test" ofType:@"pdf"]。如果您在运行时将其下载到沙盒中的某个位置,只需使用下载到的PDF路径即可。

+0

我的pdf文件并不是真正的“test.pdf”,我只是写了这个例子。我用正确的道路纠正它。 –

+0

你也可以看到链接发送给你一个好的pdf文件的URL,那么问题在哪里? –

+0

问题是,我不能猜到你没有在你的问题中显示你真实的代码,而必须假设你使用了实际的路径并测试了URL。你应该解释一下,你试图在你的问题中修复代码,我们无法猜测它。 – AliSoftware