Get-Image


Загрузить изображение в память

Параметры #1

  • -Screen Получить изображение всего экрана

  • -Path Путь к файлу, из которого будет получено изображение

  • -Url Ссылка на изображение

  • -Handle Указатель окна, из которого будет получено изображение

  • -Visible Скрин с неперекрытого окна

    Wake up, Neo, select all

    $img = Get-Image -Path "C:\Picture.bmp"

Параметры #2

  • -Screen / -Path / -Handle

  • -StartPos Координаты начала области картинки

  • -EndPos Координаты конца области картинки

    Wake up, Neo, select all

    $img = Get-Image -Screen -StartPos 50, 50 -EndPos 250, 250

Параметры #3

  • -Screen / -Path / -Handle

  • -StartPos Координаты начала области картинки

  • -Size Размеры области картинки

    Wake up, Neo, select all

    $img = Get-Image -Handle 1185246 -StartPos 50, 50 -Size 200, 200

Параметры #4

  • -Screen / -Path / -Handle

  • -Rect Объект Rectangle, содержащий информацию об области картинки

    Wake up, Neo, select all

    $rect = [Drawing.Rectangle]::new(50, 50, 200, 200)
    $img = Get-Image -Handle 1185246 -Rect $rect

⚠️Внимание


Не забывайте освобождать изображение после завершения его использования
$img.Dispose()

Возвращаемое значение

  • Bitmap

Примеры

  1. Получить скриншот всего экрана и сохранить его на диске.

    Wake up, Neo, select all

    Clear-Host
    $screen = Get-Image -Screen
    Write-Host "Ширина: $($screen.Width)"
    Write-Host "Высота: $($screen.Height)"
    $screen.Save("$home\Desktop\image_result.bmp") # сохранить скрин на рабочий стол
    $screen.Dispose() # удалить изображение
  2. Получить скриншот всего экрана и отправить в телеграм.

    Wake up, Neo, select all

    $img = Get-Image -Screen
    Send-TelegramPhoto -Photo $img
    $img.Dispose()
  3. Загрузить изображение из файла.

    Wake up, Neo, select all

    Clear-Host
    try{
    $img = Get-Image -Path "C:\image.bmp"
    }
    catch{
    Write-Host "Картинка не загрузилась" -ForegroundColor Red
    return # остановить скрипт
    }
    Write-Host $img
  4. Загрузить изображения в массив.

    Wake up, Neo, select all

    Clear-Host
    try{
    $img = Get-Image -Path "C:\image.bmp", "C:\image2.bmp" , "C:\image3.bmp"
    }
    catch{
    Write-Host "Картинка не загрузилась" -ForegroundColor Red
    return # остановить скрипт
    }

    Write-Host $img[0]
    Write-Host $img[1]
    Write-Host $img[2]
  5. Получить скрин с экрана в указанных координатах.

    Wake up, Neo, select all

    Clear-Host
    $screen = Get-Image -Screen -StartPos 100, 50 -EndPos 400, 300
    Write-Host "Ширина: $($screen.Width)"
    Write-Host "Высота: $($screen.Height)"
    $screen.Save("$home\Desktop\image_result.bmp") # сохранить скрин на рабочий стол
    $screen.Dispose() # удалить изображение
  6. Получить скрин всего окна. Окно не должно быть перекрыто другими окнами.

    Wake up, Neo, select all

    Clear-Host
    $h = Find-Window -Title "Warspear Online" # найти окно с указанным именем
    if(!$h){ # если окно не найдено
    Write-Host "Окно не найдено" -ForegroundColor Red
    return # остановить скрипт
    }

    $screen = Get-Image -Handle $h.handle[0] -Visible # скрин
    Write-Host "Ширина: $($screen.Width)"
    Write-Host "Высота: $($screen.Height)"
    $screen.Save("$home\Desktop\image_result.bmp") # сохранить скрин на рабочий стол
    $screen.Dispose() # удалить изображение
  7. Получить скрин с окна. Окно может быть перекрыто (но, не свёрнуто) другими окнами.
    Отличие от примера 5 в том что не указан параметр -Visible

    Wake up, Neo, select all

    Clear-Host
    $h = Find-Window -Title "Warspear Online" # найти окно с указанным именем
    if(!$h){ # если окно не найдено
    Write-Host "Окно не найдено" -ForegroundColor Red
    return # остановить скрипт
    }

    $screen = Get-Image -Handle $h.handle[0] # скрин
    Write-Host "Ширина: $($screen.Width)"
    Write-Host "Высота: $($screen.Height)"
    $screen.Save("$home\Desktop\image_result.bmp") # сохранить скрин на рабочий стол
    $screen.Dispose() # удалить изображение
  8. Получить скрин части окна. Окно может быть перекрыто другими окнами.

    Wake up, Neo, select all

    Clear-Host
    $h = Find-Window -Title "Warspear Online" # найти окно с указанным именем
    if(!$h){ # если окно не найдено
    Write-Host "Окно не найдено" -ForegroundColor Red
    return # остановить скрипт
    }

    $screen = Get-Image -Handle $h.handle[0] -StartPos 100, 50 -EndPos 400, 300 # скрин части окна
    Write-Host "Ширина: $($screen.Width)"
    Write-Host "Высота: $($screen.Height)"
    $screen.Save("$home\Desktop\image_result.bmp") # сохранить скрин на рабочий стол
    $screen.Dispose() # удалить изображение