Files
adbAutomation/readScreenshot.ps1
2025-12-02 18:18:39 +00:00

61 lines
1.8 KiB
PowerShell

$global:LDPlayerPath ="C:\Ldplayer\LDplayer9"
function logger($logMessage) {
$scriptName = Split-Path -Leaf $PSCommandPath
$timestamp = date
$timestampedLogMessage = $timestamp + "--$scriptName--:" + $logMessage
$logFilePath = "$global:LDPlayerPath\LDAutoLog.txt"
$fs = New-Object System.IO.FileStream($logFilePath, [System.IO.FileMode]::Append, [System.IO.FileAccess]::Write, [System.IO.FileShare]::Read)
$sw = New-Object System.IO.StreamWriter($fs)
try {
$sw.WriteLine($timestampedLogMessage)
} finally {
$sw.Close()
$fs.Close()
}
}
#$adbOut= adb -s 10.0.211.121 shell screencap -p /sdcard/screenshot.png 2>$null
#$adbPull= adb -s 10.0.211.121 pull /sdcard/screenshot.png
adb connect 10.0.211.121 *>$null
adb -s 10.0.211.121 exec-out screencap -p > $global:LDPlayerPath\screenshot.png
& "C:\Program Files\Tesseract-OCR\tesseract.exe" "$global:LDPlayerPath\screenshot.png" "$global:LDPlayerPath\tesseract" -l eng tsv
$tsvFile = "$global:LDPlayerPath\tesseract.tsv"
$wordCoords = Get-Content $tsvFile | ConvertFrom-Csv -Delimiter "`t"
$wordCoords | Where-Object ($_.level -eq 5) | Select-Object text, left, top, width, height
$Data=$wordCoords | ForEach-Object {
$x1 =[int]$_._left
$y1 =[int]$_.top
$x2 = $x1 + [int]$_.width
$y2 = $y1 + [int]$_.height
$midX =[math]::Round(($x1+$x2)/2)
$midY =[math]::Round(($y1+$y2)/2)
[PSCustomObject]@{
Text = $_.text
X1 = $x1
Y1 = $y1
X2 = $x2
Y2 = $y2
MidX = $midX
MidY = $midY
Coords = "$midX $midY"
}
}
$wordCoords | Format-Table
$Data | Format-Table
$coordsForText = $Data["Show"].Coords
$cordsForText
$showCoords = $Data | Where-Object {$_.Text -and $_.Text.ToLower() -eq 'show'}
$showCoords.Coords