iPhone의 NSDocumentsDirectory
에서 파일을로드하려고 할 때 내가 갖고있는 경로 문자열로 이미지 소스를 만들 수 없습니다.NSDocumentsDirectory에서 자체 제작 한 TIFF 이미지 파일을로드하는 방법
kCFURLImproperArgumentsError
인 오류 메시지 "<Error>: ImageIO: CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource failed with error code -15.
"이 표시됩니다.
그러나 "올바른"인수가 무엇인지 알 수 없습니다. 예를 들어 경로는 다음과 같습니다. "/var/mobile/Applications/36D76BDF-72EC-4180-9246-CF1F50CF396C/Documents/2013080110555532Image.tiff
"
제 질문은 How to save a TIFF...입니다. 이제 파일을 NSDocumentsDirectory
에 쓰는 방법을 설명합니다. 도움에 다시 한번 감사드립니다.
이제 I 으로 다시 시도하십시오. 나는 생각은 독서가 쓰기와 같았고, 단지 비췄다.
파일은 ~ 20MB입니다 ... ... 헴, ... 각각! - 그 문제는
이
이 코드는 ...뿐만 아니라 수 있습니다 (감사 this 답변 Ganapathy에) 실제로 나에게 디스플레이에 이미지 제공 :if ([self pathLastRawDataSave])
{
UIImage *anImage = [UIImage imageWithContentsOfFile:[self pathLastRawDataSave]];
if (NULL != anImage)
{
[[self imageView] setImage:anImage];
}
}
그러나, 그것은이다 작은 예제보다 항상 더 복잡하고 메타 데이터 (그리고 이미지의 축소판 그림)가 필요하기 때문에 결국 나는 CGImageSource
작업으로 돌아갈까 두려워합니다.
Heureka! 나는 그것을 발견했다! 누락 된 링크는 방법이었다fileURLWithPath
! 그 외에도 캐싱하지 않으며 이미지 검색을 위해 옵션 생성 사전을 사용합니다.
이 실제로 작동 :
if ([self pathLastRawDataSave])
{
NSURL* imageFileURL = [NSURL fileURLWithPath:[self pathLastRawDataSave]];
CFURLRef imageFileURLRef = (__bridge CFURLRef)imageFileURL; // bridged from NS-Object, no release!
NSDictionary* sourceOptions = @{(id)kCGImageSourceShouldCache: (id)kCFBooleanFalse,
(id)kCGImageSourceTypeIdentifierHint: (id)kUTTypeTIFF};
CFDictionaryRef sourceOptionsRef = (__bridge CFDictionaryRef)sourceOptions; // bridged from NS-Object, no release!
CGImageSourceRef imageSource = CGImageSourceCreateWithURL(imageFileURLRef, sourceOptionsRef);
if (NULL != imageSource)
{
// create the image from the file
CGImageRef imageData = CGImageSourceCreateImageAtIndex(imageSource, 0, sourceOptionsRef);
// release core foundation object
CFRelease(imageSource);
}
else
{
// Error opening image file
HLSLoggerFatal(@"Image source could not be accessed at path %@", [self pathLastRawDataSave]);
}
}