PowerShell: Salvare un sito come immagine
Un esempio in PowerShell di come è possibile salvare un sito web come immagine
In pratica, in automatico, apro Internet Explorer, lo mando a tutto schermo e catturo l'immagine di tutto lo schermo, a questo punto non rimane che salvarlo su file jpeg (SgartWebImage,jpg) e creare una miniatura (SgartWebImage_min.jpg).
PowerShell: CaptureWebToImage.ps1
# se non funge lanciare prima da linea di comando
# Set-ExecutionPolicy RemoteSigned
# eseguire con: powershell .\CaptureWebToImage.ps1
# apre un sito web e lo salva come immagine jpeg
[void][System.reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
[void][System.reflection.assembly]::LoadWithPartialName("System.Drawing")
$url = "http://www.sgart.it/";
$filePrefix = "SgartWebImage";
$width_min = 300; #larghezza della miniatura
#apro il browser internet explorer sull'url passata
$ie = new-object -com "InternetExplorer.Application";
$ie.FullScreen = $true;
$ie.StatusBar = $false;
$ie.ToolBar = $false;
$ie.MenuBar = $false;
$ie.AddressBar = $false;
$ie.navigate($url);
$ie.visible = $true;
#attendo che la pagina venga caricata
[System.Threading.Thread]::Sleep(8000);
#preparo un immagine per catturare lo schermo
$bmp = New-Object System.Drawing.Bitmap($ie.width, $ie.height);
$g = [System.Drawing.Graphics]::FromImage($bmp);
$sz = New-Object System.Drawing.Size($ie.Width, $ie.Height);
$g.CopyFromScreen($ie.Left, $ie.Top, 0, 0, $sz);
#salvo l'immagine nelle dimensioni correnti
$bmp.Save("c:\\$($filePrefix).jpg", [System.Drawing.Imaging.ImageFormat]::Jpeg);
#e come miniatura, calcolando l'alatezza per mantenere le proporzioni
$height_min = $ie.height * ($width_min / $ie.width);
$img = $bmp.GetThumbnailImage($width_min, $height_min, $null, [System.IntPtr]::Zero);
$img.Save("c:\\$($filePrefix)_min.jpg", [System.Drawing.Imaging.ImageFormat]::Jpeg);
$g.Dispose();
$bmp.Dispose();
$img.Dispose();
#chiudo il browser
$ie.FullScreen = 0;
$ie.quit();
In pratica, in automatico, apro Internet Explorer, lo mando a tutto schermo e catturo l'immagine di tutto lo schermo, a questo punto non rimane che salvarlo su file jpeg (SgartWebImage,jpg) e creare una miniatura (SgartWebImage_min.jpg).