【问题标题】:NEF file format is not recognize in the image/* accept file图像中无法识别 NEF 文件格式/* 接受文件
【发布时间】:2022-11-10 03:27:15
【问题描述】:
我正在处理异国情调的图像文件格式(各种 RAW)。
所以,我有我的
<input type="file" accept="image/*">
它适用于大多数格式,但由于某种原因,NEF 未被“接受”。
所以我必须在 image/* 之后手动添加它,这看起来不对。
<input ... accept="image/*, .nef"/>
firefox-linux 不支持,opera 或 chrome-MAC 也不支持。所以我希望它既不依赖于浏览器也不依赖于操作系统
我已阅读有关该主题的各种文档,我自己不是摄影师,但考虑到它可以与其他格式一起使用。
你知道为什么不支持 nef 格式吗?
更重要的是:您知道是否不支持 NEF 以外的其他格式?
【问题讨论】:
标签:
javascript
html
image
input
photo
【解决方案1】:
输入元素认为image/* 来处理图像类型。 Webkit 将过滤器委托给操作系统。例如,对于 iOS,image/* 指示对话框选择属于 UTTypeImage 类型的文件。
if ([mimeType caseInsensitiveCompare:@"image/*"] == NSOrderedSame)
[mediaTypes addObject:UTTypeImage.identifier];
此类型等同于您可以在System-Declared Uniform Type Identifiers 上看到的public.image 标识符。
NEF 文件属于 UTI com.nikon.raw-image,属于 public.camera-raw-image,属于 public.image。
问题似乎来自以下事实
这被传输到UIDocumentPickerViewController@initWithDocumentTypes(),它只接受用UTExportedTypeDeclarations声明的UTI核心。
您可以使用命令查看导入或导出的类型
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump
这是NEF的结果
uti: com.nikon.raw-image
description: Nikon raw image
flags: imported active core apple-internal
icon:
conforms to: public.camera-raw-image
tags: .nef
这给我们留下了以下使用 image/* 时默认接受的图像列表:
- public.radiance:.pic、.hdr
- public.jpeg:.jpeg、.jpg、.jpe、'JPEG'、图像/jpeg
- public.jpeg-2000:.jp2、.jpf、.jpx、.j2k、'jp2'、图像/jp2
- com.apple.pict: .pict, .pct, .pic, 'PICT', image/pict, image/x-pict, image/x-macpict, "Apple PICT pasteboard type", "NSPICTPboardType"
- com.apple.macpaint-image: .pntg, 'PNTG'
- public.png: .png, 'PNGf', image/png, "Apple PNG 粘贴板类型"
- public.svg-image: .svg, .svgz, 'svg', 'svgz', image/svg+xml
- com.apple.quicktime-image: .qtif, .qif, .qti, 'qtif', image/x-quicktime
- com.apple.icns: .icns, 'icns'
- public.xbitmap-image: .xbm, image/x-xbitmap