Как получить подробную информацию из определенного .png-файла в PowerShell?
Как размеры, битовая глубина и размер.Получить подробную информацию из файла .png в PowerShell
ответ
Вы можете получить большую часть этой информации из файлов расширенных свойств, как это:
$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
.
Свойство глубины бит, похоже, не указано в расширенных свойствах, хотя оно доступно при щелчке правой кнопкой мыши по файлу.
Update Другой вариант заключается в использовании .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
Update 2 Свойство PixelFormat дает битовую глубину.
$png.PixelFormat
Недвижимость представляет собой список возможных форматов. Вы можете просмотреть полный список здесь:
http://msdn.microsoft.com/en-us/library/system.drawing.imaging.pixelformat.aspx
Например Format32bppArgb
определяется как
Указывает, что формат 32 бит на пиксель; 8 бит используются каждый из для компонентов альфа, красный, зеленый и синий.
автор сценариев написал статью о получении файлов метаданных на основе Shell.Application http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx
Вы можете захотеть использовать PowershellPack Module, который содержит получить образ:
PS D:\> import-module psimagetools PS D:\> get-item .\fig410.png | get-image FullName : D:\fig410.png FormatID : {B96B3CAF-0728-11D3-9D7B-0000F81EF32E} FileExtension : png FileData : System.__ComObject ARGBData : System.__ComObject Height : 450 Width : 700 HorizontalResolution : 96,0119934082031 VerticalResolution : 96,0119934082031 PixelDepth : 32 IsIndexedPixelFormat : False IsAlphaPixelFormat : True IsExtendedPixelFormat : False IsAnimated : False FrameCount : 1 ActiveFrame : 1 Properties : System.__ComObject
или вы можете напрямую использовать Wia.ImageFile (как это делает функция get-image) следующим образом:
PS D:\> $image = New-Object -ComObject Wia.ImageFile PS D:\> $image.loadfile("D:\fig410.png") PS D:\> $image FormatID : {B96B3CAF-0728-11D3-9D7B-0000F81EF32E} FileExtension : png FileData : System.__ComObject ARGBData : System.__ComObject Height : 450 Width : 700 HorizontalResolution : 96,0119934082031 VerticalResolution : 96,0119934082031 PixelDepth : 32 IsIndexedPixelFormat : False IsAlphaPixelFormat : True IsExtendedPixelFormat : False IsAnimated : False FrameCount : 1 ActiveFrame : 1 Properties : System.__ComObject
Не найдена ссылка, какие-либо альтернативы? – Kiquenet
Нет официальной ссылки, но https://github.com/thlorenz/settings/tree/master/WindowsPowerShell/Modules может помочь –
- 1. получить подробную информацию пользователей из сервера обмена
- 2. Как получить подробную информацию из базы данных?
- 3. Основные данные получить подробную информацию
- 4. PowerShell: как получить подробную информацию о событии WMI?
- 5. Получить подробную информацию о FileSystemEventArgs.ChangeType
- 6. получить подробную информацию о процессе в Android
- 7. Получить Подробную информацию о методе в C#
- 8. Получить подробную информацию о корзине в Magento
- 9. Получить подробную информацию о подписи файла EXE с .NET
- 10. Получить подробную информацию о обновленных версиях SQL
- 11. Как получить подробную информацию с QR-кода?
- 12. Как получить подробную информацию от HttpWebResponse
- 13. Получить подробную информацию из системного каталога в Oracle 11G
- 14. Как получить подробную информацию о шаблоне изображения?
- 15. не удалось получить подробную информацию из xml file.getting confussions
- 16. Highstock получить подробную информацию, когда данные сгруппированы
- 17. Как получить подробную информацию о пурпуре
- 18. SCSS: получить более подробную информацию о выходе
- 19. Получить подробную информацию о конфигурации RAID [linux]
- 20. чтобы получить подробную информацию о счете.
- 21. Как получить подробную информацию для определенного сообщения?
- 22. Как получить подробную информацию об удаленных rpms
- 23. Получить подробную информацию о пользователе от facebook
- 24. Чтобы получить подробную информацию о пользователе github
- 25. Как получить мануфактуру, подробную информацию о модели?
- 26. удались получить подробную информацию об объемном репликанте
- 27. Получить подробную информацию (родительский платеж) о возмещении
- 28. PowerShell Script - Получить информацию об учетной записи из внешнего файла
- 29. Получить подробную информацию из MySQL таблицы, как длина, значение
- 30. Как получить подробную информацию о текущем пользователе из API Google
Спасибо за ваш ответ. Я, наконец, решил использовать Wia.ImageFile. с помощью которых я могу получить более простые данные (например, бит-глубина). – Etienne
@Etienne Я добавил еще один вариант. Вы можете использовать .NET и избегать использования COM. –
Благодарим вас за последнее обновление. Я новичок в PowerShell, поэтому, если я понимаю, что лучше использовать .NET вместо COM? С Wia.ImageFile я также нашел IsIndexedPixelFormat, IsAlphaPixelFormat, IsExtendedPixelFormat и IsAnimated, которые интересны для моих нужд. Мне не удалось найти их с помощью System.Drawing. Большое спасибо за ваш ответ, это очень ценится. Etienne. – Etienne