我有一个脚本,它循环播放我拍摄的大量图像并读取焦距和相机模型,显示焦距和总焦距图表(这对于帮助确定下一次购买镜头很有帮助,但除此之外点)。
这对于 10 MB 以下的 JPG 图像非常有效,但是一旦遇到接近 20 MB 的 RAW 文件(如佳能的 CR2 格式),它就会出现“内存不足”错误。
有没有办法增加 Powershell 中的内存限制,或者只读取文件的元数据而不加载整个文件..?
这是我目前正在使用的:
# load image by statically calling a method from .NET
$image = [System.Drawing.Imaging.Metafile]::FromFile($file.FullName)
# try to get the ExIf data (silently fail if the data can't be found)
# http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html
try
{
# get the Focal Length from the Metadata code 37386
$focalLength = $image.GetPropertyItem(37386).Value[0]
# get model data from the Metadata code 272
$modelByte = $image.GetPropertyItem(272)
# convert the model data to a String from a Byte Array
$imageModel = $Encode.GetString($modelByte.Value)
# unload image
$image.Dispose()
}
catch
{
#do nothing with the catch
}
我在这里尝试使用该解决方案:http: //goo.gl/WY7Rg但 CR2 文件只会在任何属性上返回空白...
非常感谢任何帮助!