program works but ineffective on sample data. Assembling new sample data...

This commit is contained in:
Erik Eckert 2024-09-03 14:53:35 -06:00
parent ac03d27c62
commit 16bc87b419
2 changed files with 77 additions and 1 deletions

71
Process-Images.ps1 Normal file
View File

@ -0,0 +1,71 @@
# Script to find, process, and anaylze the results of processing.
# eventually make this folder select.
$ImagePathToProcess = "C:\Users\eeckert\Downloads\Test Photos\Unmodified"
$ArchivePathBase = "\\192.168.24.15\OriginalPhotos\TestPath"
$ImageOutputPath = "C:\Users\eeckert\Downloads\Test Photos\AfterImageMagick - Pass 1"
$depth = 15 # how many folders down do we go.
$Reduction_Percentage = '25%'
$Logging = @()
if (!($ImagePathToProcess)) {
# If this path doesn't exist, then error out. Erik's a fool and has been burned by this before.
} else {
# do stuff!
# get file list - image formats only
$imagefiles = get-childitem $imagePathToProcess -Recurse -Depth $depth -Include ('*.jpg','*.png','*.bmp')
foreach ($image in $imagefiles) {
$copyResult = $null
# Set Paths
$SourcePath = $image.FullName
$SourceSize = $image.Length
$ArchivePathDest = $SourcePath.Replace($ImagePathToProcess,"") # strip sourcepath
$ArchivePath = $ArchivePathBase + $ArchivePathDest
$ArchivePath_Parent = Split-Path -Parent $ArchivePath
New-Item -Path $ArchivePath_Parent -ItemType Directory -Force
$copyresult = Copy-Item $SourcePath $ArchivePath -Force
if (!($copyresult)) {
$copyresult_Dest = $null
$actualDest_file = $ImageOutputPath + $SourcePath.Replace($ImagePathToProcess,"") # strip sourcepath
$actualDest_Parent = Split-Path -Parent $actualDest_file
New-Item -Path $actualDest_Parent -ItemType Directory -Force
$copyresult_Dest = Copy-Item $SourcePath $actualDest_file -Force
if (!($copyresult_Dest)) {
# if no error Assemble the imagemagick command line
$command = "magick"
$commandArgs = "mogrify `"$actualDest_file`" -resize $Reduction_Percentage"
Start-Process $command -ArgumentList $commandArgs -wait
$NewImage = get-item -path $actualDest_file
$NewSize = $NewImage.Length
$Logging += [PSCustomObject]@{
FileName = $SourcePath
'Original Size' = $SourceSize
'New Size' = $NewSize
}
}
}
}
}

View File

@ -1,3 +1,8 @@
# ImageResizeAndArchive
Project to update all photos on Egnyte to lower resoluiton, 72DPI photos. Original to be stored in $ArchiveLocation.
## Project to update all photos on Egnyte to lower resoluiton, 72DPI photos. Original to be stored in $ArchiveLocation.
$ImagePathToProcess = Location of files to process - including subfolders.
$ArchivePathBase = Location to store Archived His Res Photos