148 lines
6.8 KiB
PowerShell
148 lines
6.8 KiB
PowerShell
function New-BootsImage {
|
|
#
|
|
#.Synopsis
|
|
# Convert a PowerBoots element (WPF Visual) into an image
|
|
#.Description
|
|
# Takes a WPF Visual element and captures it as an image, optionally saving it to file (otherwise, it's placed on the clipboard).
|
|
#.Parameter Content
|
|
# A scriptblock that generates the element that you want to capture an image of
|
|
#.Example
|
|
# StackPanel -Margin "10,5,10,5" -Background White $(
|
|
# Label "Please enter your name:"
|
|
# StackPanel -Orientation Horizontal $(
|
|
# TextBox -OutVariable global:textbox -Width 150 -On_KeyDown {
|
|
# if($_.Key -eq "Return") {
|
|
# Write-Output $textbox[0].Text
|
|
# $BootsWindow.Close()
|
|
# }
|
|
# }
|
|
# Button "Ok" -Padding "5,0,5,0" -Margin "2,0,0,0" -On_Click {
|
|
# Write-Output $textbox[0].Text
|
|
# $BootsWindow.Close()
|
|
# }
|
|
# )
|
|
# ) | Out-BootsImage Statistics.jpg
|
|
#
|
|
# Take a Screenshot of an input window. NOTE: this won't capture the window chrome.
|
|
#
|
|
#.Example
|
|
#Chart -Width 200 -Height 150 -Theme Theme3 -Watermark $false -Animation $false (
|
|
# DataSeries $(
|
|
# 1..(Get-Random -min 3 -max 6) | ForEach-Object {
|
|
# DataPoint -YValue (Get-Random 100)
|
|
# }
|
|
# )
|
|
#) | Out-BootsImage Statistics.png | ForEach-Object {
|
|
# Send-FTP HuddledMasses.org (Get-Credential) -LocalFile $_ -Remotefile "/public_html/$($_.Name)"
|
|
# [Windows.Clipboard]::SetText( "!http://HuddledMasses.org/$($_.Name)!" )
|
|
#}
|
|
#
|
|
# Using the Visifire charting components, generate a random chart, convert it to a png image, upload it to my webserver using the NetCmdlets Send-FTP, and finally, send the new URL to the clipboard...
|
|
#
|
|
#.Links
|
|
# http://HuddledMasses.org/powerboots-to-image
|
|
#.ReturnValue
|
|
# The file path, if saved to file.
|
|
#.Notes
|
|
# AUTHOR: Joel Bennett http://HuddledMasses.org
|
|
# LASTEDIT: 2009-01-07 11:35:23
|
|
#
|
|
#[CmdletBinding(DefaultParameterSetName="ToClipboard")]
|
|
Param(
|
|
#[Parameter(Position=0, Mandatory=$false, ParameterSetName="ToFile")]
|
|
[string]$FileName
|
|
,
|
|
#[Parameter(Position=1, ValueFromPipeline=$true, Mandatory=$true)]
|
|
[ScriptBlock]$Content
|
|
,
|
|
[double]$dpiX = 96.0
|
|
,
|
|
[double]$dpiY = 96.0
|
|
,
|
|
[Windows.Media.PixelFormat]$pixelFormat = "Pbgra32"
|
|
)
|
|
PROCESS {
|
|
[ScriptBlock]$global:export = iex @"
|
|
{ Param(`$window)
|
|
`$null = Export-BootsImage '$FileName' `$Window '$dpiX,$dpiY' '$pixelFormat'
|
|
`$Window.Close()
|
|
}
|
|
"@
|
|
$global:bmod = Get-BootsModule
|
|
$global:Content = $Content
|
|
|
|
$null = New-BootsWindow -Title "ScreenCapWindow" {
|
|
GridPanel $global:Content -Background White
|
|
} -On_ContentRendered {
|
|
& $global:export $this
|
|
}
|
|
|
|
Remove-BootsWindow "ScreenCapWindow"
|
|
$files = "{0}*{1}" -f [IO.Path]::GetFileNameWithoutExtension($FileName),
|
|
[IO.Path]::GetExtension($FileName)
|
|
Write-Host $files
|
|
Get-ChildItem $files
|
|
}
|
|
}
|
|
|
|
# SIG # Begin signature block
|
|
# MIILCQYJKoZIhvcNAQcCoIIK+jCCCvYCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
|
|
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
|
|
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUIb53gkd3NESwLY9I4C5XKXt+
|
|
# L0OgggbgMIIG3DCCBMSgAwIBAgIJALPpqDj9wp7xMA0GCSqGSIb3DQEBBQUAMIHj
|
|
# MQswCQYDVQQGEwJVUzERMA8GA1UECBMITmV3IFlvcmsxEjAQBgNVBAcTCVJvY2hl
|
|
# c3RlcjEhMB8GA1UEChMYaHR0cDovL0h1ZGRsZWRNYXNzZXMub3JnMSgwJgYDVQQL
|
|
# Ex9TY3JpcHRpbmcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MTcwNQYDVQQDEy5odHRw
|
|
# Oi8vSHVkZGxlZE1hc3Nlcy5vcmcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MScwJQYJ
|
|
# KoZIhvcNAQkBFhhKYXlrdWxASHVkZGxlZE1hc3Nlcy5vcmcwHhcNMDkwMzE1MTkx
|
|
# OTE5WhcNMTAwMzE1MTkxOTE5WjCBqzELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5l
|
|
# dyBZb3JrMRIwEAYDVQQHEwlSb2NoZXN0ZXIxITAfBgNVBAoTGGh0dHA6Ly9IdWRk
|
|
# bGVkTWFzc2VzLm9yZzESMBAGA1UECxMJU2NyaXB0aW5nMRUwEwYDVQQDEwxKb2Vs
|
|
# IEJlbm5ldHQxJzAlBgkqhkiG9w0BCQEWGEpheWt1bEBIdWRkbGVkTWFzc2VzLm9y
|
|
# ZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPfqxOG9TQN+qZjZ6KfM
|
|
# +zBK0YpjeyPL/cFgiGBhiIdYWTBtkbZydFr3IiERKRsUJ0/SKFbhf0C3Bvd/neTJ
|
|
# qiZjH4D6xkrfdLlWMmmSXXqjSt48jZp+zfCAIaF8K84e9//7lMicdVFE6VcgoATZ
|
|
# /eMKQky4JvphJpzDHYPLxLJQrKd0pjDDwspjdX5RedWkzeZBG7VfBnebLWUzgnMX
|
|
# IxRQKfFCMryQDP8weceOnJjfJEf2FYmdpsEg5EKKKbuHsQCMVTxfteKdPvh1oh05
|
|
# 1GWyPsvEPh4auJUT8pAVvrdxq+/O9KW/UV01UxjRYM1vdklNw8g7mkJTrrHjSjl7
|
|
# tuugCnJjt5kN6v/OaUtRRMR68O85bSTVGOxJGCHUKlyuuTx9tnfIgy4siFYX1Ve8
|
|
# xwaAdN3haTon3UkWzncHOq3reCIVF0luwRZu7u+TnOAnz2BRlt+rcT0O73GN20Fx
|
|
# gyN2f5VGBbw1KuS7T8XZ0TFCspUdgwAcmTGuEVJKGhVcGAvNlLx+KPc5dba4qEfs
|
|
# VZ0MssC2rALC1z61qWuucb5psHYhuD2tw1SrztywuxihIirZD+1+yKE4LsjkM1zG
|
|
# fQwDO/DQJwkdByjfB2I64p6mk36OlZAFxVfRBpXSCzdzbgKpuPsbtjkb5lGvKjE1
|
|
# JFVls1SHLJ9q80jHz6yW7juBAgMBAAGjgcgwgcUwHQYDVR0OBBYEFO0wLZyg+qGH
|
|
# Z4WO8ucEGNIdU1T9MB8GA1UdIwQYMBaAFN2N42ZweJLF1mz0j70TMxePMcUHMAkG
|
|
# A1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgTwMCoGA1UdJQEB/wQgMB4GCCsGAQUF
|
|
# BwMBBggrBgEFBQcDAgYIKwYBBQUHAwMwCwYDVR0PBAQDAgTwMCwGCWCGSAGG+EIB
|
|
# DQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTANBgkqhkiG9w0BAQUF
|
|
# AAOCAgEAmKihxd6KYamLG0YLvs/unUTVJ+NW3jZP16R28PpmidY/kaBFOPhYyMl2
|
|
# bBGQABe7LA5rpHFAs0F56gYETNoFk0qREVvaoz9u18VfLb0Uwqtnq0P68L4c7p2q
|
|
# V3nKmWjeI6H7BAyFuogxmMH5TGDfiqrrVSuh1LtPbkV2Wtto0SAxP0Ndyts2J8Ha
|
|
# vu/2rt0Ic5AkyD+RblFPtzkCC/MLVwSNAiDSKGRPRrLaiGxntEzR59GRyf2vwhGg
|
|
# oAXUqcJ/CVeHCP6qdSTM39Ut3RmMZHXz5qY8bvLgNYL6MtcJAx+EeUhW497alzm1
|
|
# jInXdbikIh0d/peTSDyLbjS8CPFFtS6Z56TDGMf+ouTpEA16otcWIPA8Zfjq+7n7
|
|
# iBHjeuy7ONoJ2VDNgqn9B+ft8UWRwnJbyB85T83OAGf4vyhCPz3Kg8kWxY30Bhnp
|
|
# Fayc6zQKCpn5o5T0/a0BBHwAyMfr7Lhav+61GpzzG1KfAw58N2GV8KCPKNEd3Zdz
|
|
# y07aJadroVkW5R+35mSafKRJp5pz20GDRwZQllqGH1Y/UJFEiI0Bme9ecbl2vzNp
|
|
# JjHyl/jLVzNVrBI5Zwb0lCLsykApgNY0yrwEqaiqwcxq5nkXFDhDPQvbdulihSo0
|
|
# u33fJreCm2fFyGbTuvR61goSksAvLQhvijLAzcKqWKG+laOtYpAxggOTMIIDjwIB
|
|
# ATCB8TCB4zELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMRIwEAYDVQQH
|
|
# EwlSb2NoZXN0ZXIxITAfBgNVBAoTGGh0dHA6Ly9IdWRkbGVkTWFzc2VzLm9yZzEo
|
|
# MCYGA1UECxMfU2NyaXB0aW5nIENlcnRpZmljYXRlIEF1dGhvcml0eTE3MDUGA1UE
|
|
# AxMuaHR0cDovL0h1ZGRsZWRNYXNzZXMub3JnIENlcnRpZmljYXRlIEF1dGhvcml0
|
|
# eTEnMCUGCSqGSIb3DQEJARYYSmF5a3VsQEh1ZGRsZWRNYXNzZXMub3JnAgkAs+mo
|
|
# OP3CnvEwCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJ
|
|
# KoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQB
|
|
# gjcCARUwIwYJKoZIhvcNAQkEMRYEFJFy9zhVKhFX5fp+uREOAh2/PVukMA0GCSqG
|
|
# SIb3DQEBAQUABIICAEM11WDkQ9KgbcWovHMMtb+mXdkke/A0X/0D3jbyWzYF2s+U
|
|
# y1rspn8NbNSTA4bTzqQeGlx0cCL9QIdoP0PM92q+96uFqMqAkmbR7FqKjrHmLKCz
|
|
# 2zcJCbOEetSuOKKXa9Y22s49DeS+Icb1gtHiWyf2dj8M4J6Qx7XQ/OsNcz9GunJJ
|
|
# lDWJsNijVloACLxPT6d39wDL+srefUVKYa581zicw9f3c9d/mIyCN7yvEpWVwfLj
|
|
# gm3tHFiJs9HhD3cJbRMSl4tRKmsfWzIfAqXddtGaW0erJSz0hoj4tJoMIkAbxorP
|
|
# zkBrbGgeaqa8TlDkDvFTurkDyo2ZdJ1r9HkeYZC2ScyZBSYcXy+BFiFkJ5akjasc
|
|
# vErtlVntcVxOb+DiCkfcpq0dfm+xTCFC+M+40eysjNqhoSDgvo2XRuDtoFpGI2Og
|
|
# DJCoaWxi5EYYRfHg5rx4NMZHAqLV7MAVs6PSEOPEYPtnfvu9DqpUql4sNla4oEtW
|
|
# 0utbKVFm9IKbZb+R22qfRJ3sd1aLVLueoo5eiBt89lIqVX2+egkVlVwAHPE5Woi/
|
|
# 2Gl3AC7+sVFVOq+ugo8jkyFlQdmC+8DH5d1b7eXuEWrEP4OTpQCsvyljfbdeXyFW
|
|
# +xuJ3sGMXSYZpqvPuQ7RI7hKQYaq9j3JCgPAtOe/o3KYiHg13P/HanoCxgFU
|
|
# SIG # End signature block
|