2011-07-26 2 views

답변

8

나는 XIF 데이터를 주위에 누워있는 모든 이미지가없는 지금 (그것을 테스트 할 수 없습니다,하지만 난이 일을해야한다고 생각 : 일반적으로

[reflection.assembly]::LoadWithPartialName("System.Drawing") 
$pic = New-Object System.Drawing.Bitmap('C:\PATH\TO\SomePic.jpg') 
$pic.GetPropertyItem(36867).Value 
+0

이것은 이야기의 절반입니다. 사진에서 dateTken을 얻을 수 있습니다. 동영상 (mpg, wmv)은 어때요? – JNappi

+0

흠 ... 나는 약간의 주위를 파고 할거야. 나는 정직하지 않을거야. – EBGreen

+3

바이트 배열을 반환합니다. 이것을 [datetime]으로 변환하려면 다음을 수행해야합니다 :'$ bitearr = $ pic.GetPropertyItem (36867) .Value $ string = [System.Text.Encoding] :: ASCII.GetString ($ bitearr) [datetime ] :: ParseExact ($ string, "yyyy : MM : dd HH : mm : ss'0", $ Null)'' –

3

을, 당신이 어떤 확장 된 속성에 액세스 할 수 있습니다 .

$file = Get-Item IMG_0386.jpg 
$shellObject = New-Object -ComObject Shell.Application 
$directoryObject = $shellObject.NameSpace($file.Directory.FullName) 
$fileObject = $directoryObject.ParseName($file.Name) 

$property = 'Date taken' 
for(
    $index = 5; 
    $directoryObject.GetDetailsOf($directoryObject.Items, $index) -ne $property; 
    ++$index) { } 

$value = $directoryObject.GetDetailsOf($fileObject, $index) 


에있어서, 단 : 쉘 GetDetailsOf 방법으로 탐색기에 나타낸 파일 another answer 여기에서 적응 간단한 예가있어에는 설정에 대한 범용 메커니즘이 없습니다. System.Drawing.Bitmap 클래스 인 EBGreen mentioned은 이미지 작업을 할 수 있지만 비디오 파일의 .NET 옵션도 알 수 없습니다.

+0

이렇게 찍은 날짜에 대해 구체적으로 어떻게 작동합니까? – Cullub

+0

'$ property = '찍은 날짜'는 "찍은 날짜"속성의 색인을 찾는 데 사용되며 쉘 객체는 파일의 해당 속성을 읽는 데 사용됩니다. –

관련 문제