Ответ 1
Вы должны использовать [NSURL fileURLWithPath:imgPath]
вместо [NSURL URLWithString:imgPath]
. Путь к изображению не является допустимым URL-адресом, ему нужен префикс file://
.
Я не могу получить свое изображение (.png) для отображения.
Я проверяю, что он существует на пути, который я использую, и это так. Но изображение не отображается.
Вот что я пытался:
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *outputPath = [documentsDir stringByAppendingPathComponent:[fileList objectAtIndex:indexPath.row]];
NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
NSString *imgPath = [[outputPath stringByReplacingOccurrencesOfString:@"mov" withString:@"png"]retain];
if ([fileManager fileExistsAtPath:imgPath])
{
NSLog(@"FOUND IMG");
NSLog(imgPath);
}
NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgPath]];
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
UIImageView * imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 120, 120)];
[imgView setImage:thumbNail];
[cell addSubview:imgView];
[imgView release];
Отладочный вывод, подтверждающий существование файла
FOUND IMG
2011-12-26 12:42:23.066 iGeo2[412:707] /var/mobile/Applications/1A2B0D85-CDB1-4E4B-
9509-EF68B1A0E720/Documents/0.009000.png
Я немного озадачен. Кто-нибудь видит, где я совершил ошибку?
Большое спасибо, -кода
Я пробовал несколько других методов, но ничего не появляется.
Вы должны использовать [NSURL fileURLWithPath:imgPath]
вместо [NSURL URLWithString:imgPath]
. Путь к изображению не является допустимым URL-адресом, ему нужен префикс file://
.
Попробуйте использовать
NSData *imgData = [NSData dataWithContentsOfFile:imgPath];
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
или
NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:imgPath]];
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
Вам нужно указать правильный URL-адрес файла, который будет
NSURL *imgURL = [NSURL fileURLWithPath:imgPath];
затем инициализируйте изображение с помощью соответствующего imgURL var и, наконец, добавьте изображение в свою ячейку, вам нужно выполнить следующие действия
[cell.contentView addSubview:imgView];
Я надеюсь, что это может решить вашу проблему.
imageView.image = [UIImage imageWithContentsOfFile:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"Filename"]];
Ваш URL-адрес идеален.
Вам нужно инициализировать изображение со следующей строкой
UIImage *thumbNail=[UIImage imageWithContentsOfFile:imagePath];
сделайте это
[imgView setImage:thumbNail];
[cell addSubview:imgView];
Swift 4
код:
extension FileManager {
class func getImage(named: String) -> UIImage? {
let imagePath = getImagePath(named: named)
return UIImage(contentsOfFile: imagePath)
}
class func getImagePath(named: String) -> String {
let fileManager = FileManager.default
let documentDir = try! fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
return documentDir.appendingPathComponent(named).path
}
}
Использование:
let image = FileManager.getImage(named: "image.png")