Donc, après les découvertes suivantes:
- la capture d'image automatisée sur un Nikon D5000 et
- la découverte d'ImageMagick (voir les deux posts précédents)
- Réduit automatiquement l'image en 3 tailles différentes (600x600, 200x200, 100x100)...
- Sélectionne la partie centrale (pour avoir un beau carré)
- Dégrade la qualité à 93% (le meilleur rapport entre taille et qualité)
Le reste se fera en clipper compilé à l'aide d'Harbour Project (compilateur Clipper libre)
# ---------------------------------------- # Configuration $srcfolder = "C:\Stock\Input\CatPhoto.in" $destfolder = "C:\Stock\Input\CatPhoto.in" $im_convert_exe = "C:\Program Files (x86)\ImageMagick-6.8.7-Q16\convert.exe" $src_filter = "pict_*.jpg" $dest_ext = "jpg" # Image source = 4282 x 2848, target = ? x 600 (to be cropped at 600x600) # Width=903 <-- data-blogger-escaped-final="" data-blogger-escaped-height="600" data-blogger-escaped-source=""> ratio = 4.746 => Width for Height = 600 => 4282 / 4.746 => 903px # Intermediate image would be resized to 903x600 BEFORE croping to 600x600 $optionsCatImage = "-resize 903 -crop 600x600+151+0 -quality 93" $optionsCatThumb = "-resize 302 -crop 200x200+51+0 -quality 93" $optionsCatMiniThumb = "-resize 150 -crop 100x100+25+0 -quality 93" $logfile = "c:\Stock\Input\CatPhoto.in\convert_image.txt" # ---------------------------------------- $fp = New-Item -ItemType file $logfile -force $count=0 foreach ($srcitem in $(Get-ChildItem $srcfolder -include $src_filter -recurse)) { $srcname = $srcitem.fullname # Construct the filename and filepath for the output $partial = $srcitem.FullName.Substring( $srcfolder.Length ) $destCatname = $destfolder + $partial.replace( "pict_", "cat_" ) $destThumbname = $destfolder + $partial.replace( "pict_", "thumb_" ) $destMiniThumbname = $destfolder + $partial.replace( "pict_", "mini_" ) $destCatname= [System.IO.Path]::ChangeExtension( $destCatname , $dest_ext ) $destThumbname= [System.IO.Path]::ChangeExtension( $destThumbname , $dest_ext ) $destMiniThumbname= [System.IO.Path]::ChangeExtension( $destMiniThumbname , $dest_ext ) $destpath = [System.IO.Path]::GetDirectoryName( $destCatname ) # Create the destination path if it does not exist # if (-not (test-path $destpath)) # { # New-Item $destpath -type directory | Out-Null # } #--- CAT IMAGE --- # Perform the conversion by calling an external tool $cmdline = "& `""+$im_convert_exe+"`""+ " `"" + $srcname + "`" " + $optionsCatImage + " `"" + $destCatname + "`" " echo $cmdline invoke-expression -command $cmdline # Get information about the output file $destitem = Get-item $destCatname # Show and record information comparing the input and output files $info = [string]::Format( "{0} `t {1} `t {2} `t {3} `t {4} `t {5}", $count, $partial, $srcname, $destCatname, $srcitem.Length , $destitem.Length) echo $info Add-Content $fp $info $count=$count+1 #--- CAT THUMB --- # Perform the conversion by calling an external tool $cmdline = "& `""+$im_convert_exe+"`""+ " `"" + $srcname + "`" " + $optionsCatThumb + " `"" + $destThumbname + "`" " echo $cmdline invoke-expression -command $cmdline # Get information about the output file $destitem = Get-item $destThumbname # Show and record information comparing the input and output files $info = [string]::Format( "{0} `t {1} `t {2} `t {3} `t {4} `t {5}", $count, $partial, $srcname, $destThumbname, $srcitem.Length , $destitem.Length) echo $info Add-Content $fp $info $count=$count+1 #--- CAT MINI THUMB --- # Perform the conversion by calling an external tool $cmdline = "& `""+$im_convert_exe+"`""+ " `"" + $srcname + "`" " + $optionsCatMiniThumb + " `"" + $destMiniThumbname + "`" " echo $cmdline invoke-expression -command $cmdline # Get information about the output file $destitem = Get-item $destMiniThumbname # Show and record information comparing the input and output files $info = [string]::Format( "{0} `t {1} `t {2} `t {3} `t {4} `t {5}", $count, $partial, $srcname, $destMiniThumbname, $srcitem.Length , $destitem.Length) echo $info Add-Content $fp $info $count=$count+1 }