Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # Runs ImageMagick tool to find changed images
- # reference folder - folder with reference images
- # diff folder - folder where diff images are generated
- #
- # USAGE:
- # powershell -File detectChanges.ps1 [-magick PathToImageMagick] [-diff PathToImageDiffFolder] [-reference PathToReferenceFolder]
- #
- # powershell -File detectChanges.ps1
- #
- # or you can open and run this script from Windows PowerShell ISE
- #
- # requirement:
- # - powershell
- # - running powershell scripts is allowed:
- # Set-ExecutionPolicy RemoteSigned (or Unrestricted)
- #
- # in Windows Vista, Win7 and above you can change the setting
- # only by running powershell with administrative rights
- #
- # you have to change both 32 and 64 bit settings because they are separate, details:
- # http://blog.unixwiz.net/2010/05/powershell-surprise-in-windows-7.html
- #
- #
- $magickFolder="D:/win_/ImageMagick-6.7.2-8/"
- $referenceFolder = "./reference/"
- $diffFolder = "./diff/"
- $imgMask = "./shots/*.png"
- $copy2reference = $false #$true #if reference file does not exist - copy tested file
- #------------------ read command line
- $option = ""
- foreach ($nm in $args) {
- switch ($nm) {
- "-magick" { # folder with ImageMagick
- $option = "magickFolder"
- }
- "-diff" { # folder to store image difference files
- $option = "diffFolder"
- }
- "-reference" { #folder with reference images
- $option = "referenceFolder"
- }
- "-copyReference" { #copy file to reference folder if necessary
- $option = "copyReference"
- }
- default { #image mask to process
- switch ($option) {
- "copyReference" {
- $copy2reference = $nm -eq "true"
- }
- "magickFolder" {
- $magickFolder = $nm
- if (!$magickFolder.EndsWith('/')) {$magickFolder += '/'}
- }
- "referenceFolder" {
- $referenceFolder = $nm
- if (!$referenceFolder.EndsWith('/')) {$referenceFolder += '/'}
- }
- "diffFolder" {
- $diffFolder = $nm
- if (!$diffFolder.EndsWith('/')) {$diffFolder += '/'}
- }
- default {
- $imgMask = $nm
- }
- }
- $option = ""
- }
- }
- }
- #Clean diff folder
- $diffFiles = $diffFolder + "*.png"
- Remove-Item $diffFiles
- foreach ($fl in get-childitem $imgMask) {
- $in = $referenceFolder + $fl.name
- if (Test-Path $in) { #file exists
- Write-Host $fl.FullName
- $diff = $diffFolder + "diff-" + $fl.name
- $cmd = $magickFolder + "compare.exe"
- #redirect STDERR to STDIN
- $res = & $cmd -metric AE $fl.FullName $in $diff 2>&1
- if ($res.Exception.Message -eq 0) { #OK
- #Write-Host '--------- OK---- ' $fl.name
- Remove-Item $diff
- } else { #FAIL
- #Write-Host '============= FAIL === ' $fl.name
- }
- } else { #reference file doesn't exist
- Write-Host $fl.name " - reference file doesn't exist"
- if ($copy2reference) {
- Write-Host "--- Copy " $fl.name " as the reference"
- Copy-Item $fl $in
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement