Вы можете получить большую часть этой информации из расширенных свойств файлов, таких как:
$path = 'D:\image.png'
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
$width = 27
$height = 28
$Dimensions = 26
$size = 1
$shellfolder.GetDetailsOf($shellfile, $width)
$shellfolder.GetDetailsOf($shellfile, $height)
$shellfolder.GetDetailsOf($shellfile, $Dimensions)
$shellfolder.GetDetailsOf($shellfile, $size)
Вы также можете получить размер другими способами, такими как (Get-Item D:\image.png).Length / 1KB
.
Похоже, что свойство глубины в битах не указано в расширенных свойствах, хотя оно доступно при щелчке файла правой кнопкой мыши.
Обновление Другой вариант - использовать собственно .NET, чтобы не использовать COM:
add-type -AssemblyName System.Drawing
$png = New-Object System.Drawing.Bitmap 'D:\image.png'
$png.Height
$png.Width
$png.PhysicalDimension
$png.HorizontalResolution
$png.VerticalResolution
Обновление 2 Свойство PixelFormat дает вам битовую глубину.
$png.PixelFormat
Свойство является перечислением возможных форматов. Вы можете просмотреть полный список здесь:
http://msdn.microsoft.com/en-us/library/system.drawing.imaging.pixelformat.aspx
Например, Format32bppArgb
определяется как
Указывает, что формат составляет 32 бита на пиксель; 8 бит каждый используется
для альфа, красного, зеленого и синего компонентов.