Μαζική αλλαγή διαστάσεων εικόνων – Powershell v3 Script για Windows
Μαζική αλλαγή μεγέθους φωτογραφίας - Powershell v3 Script για Windows
Εισαγωγή
Πολλές φορές οι πελάτες μας δυσκολεύονται να αλλάξουν το μέγεθος των εικόνων ώστε να μπορούν να τις ανεβάσουν σωστά στα προϊόντα Magento. Μερικές φορές οι προμηθευτές τους δίνουν είτε πολύ μεγάλες είτε ανομοιόμορφες φωτογραφίες γεγονός που τους δυσκολεύει να παράγουν ένα καλό αποτέλεσμα. Συνήθως μπορούμε να ζητήσουμε από το Magento να αλλάξει το μέγεθος των εικόνων πριν τις εμφανίσει στους επισκέπτες ωστόσο θεωρούμε ότι είναι προτιμότερο οι εικόνες να ανεβαίνουν εξαρχής στο σωστό μέγεθος.
Για αυτό αποφασίσαμε να γράψουμε ένα μικρό script powershell που θα αλλάζει το μέγεθος όλων των εικόνων σε έναν φάκελο σε 1000 x 1000 px. Πρόκειται για μια λογική διάσταση για εικόνες προϊόντων σε έναν ιστότοπο στις περισσότερες περιπτώσεις εκτός αν απαιτείται πολύ υψηλή ανάλυση για ζουμ με σκοπό την προβολή υφών και λεπτομερειών.
Απαιτήσεις
Για να λειτουργήσει αυτό το script πρέπει να είναι εγκατεστημένα τα ακόλουθα προαπαιτούμενα αν δεν υπάρχουν ήδη στο σύστημά σας:
Powershell v3+: Αν χρησιμοποιείτε Windows 10 έχετε ήδη την έκδοση v3 του Powershell. Αν χρησιμοποιείτε παλαιότερη έκδοση Windows ίσως χρειαστεί να την αναβαθμίσετε από την ιστοσελίδα της Microsoft.
Βιβλιοθήκη ImageMagick: Το script χρησιμοποιεί τη βιβλιοθήκη ImageMagick για την αλλαγή μεγέθους των εικόνων οπότε πρέπει να είναι εγκατεστημένη στο σύστημά σας. Βεβαιωθείτε ότι κατεβάζετε τη σωστή έκδοση της βιβλιοθήκης ανάλογα με την αρχιτεκτονική των Windows σας 32bit ή 64bit από την επίσημη ιστοσελίδα.
Το script δεν απαιτεί ειδική εγκατάσταση. Δημιουργήστε απλώς ένα αρχείο με όνομα resizer.ps1 και επικολλήστε μέσα τον παρακάτω κώδικα. Στη συνέχεια αντιγράψτε το στον φάκελο που περιέχει τις εικόνες των οποίων θέλετε να αλλάξετε το μέγεθος.
#
# Script.ps1
#
$scriptPath=$PSScriptRoot
#$scriptPath=""
cd $scriptPath
Remove-Item -Recurse -Force "resized"
mkdir "resized"
Write-Host $scriptPath
$files = Get-ChildItem $scriptPath -Filter *.jpg
foreach ($file in $files) {
$oldPath=$file.FullName
$baseName=$file.BaseName
$ext=$file.Extension
$newPath="$scriptPath\resized\$baseName-1000x1000$ext"
#Copy-Item $oldPath $newPath
magick "$oldPath" -resize 1000x1000 -background white -gravity center -extent 1000x1000 "$newPath"
}
Write-Host "Press any key to continue ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Τρόπος Χρήσης
Αντιγράψτε το script “resize.ps1” στο φάκελο που περιέχει τις εικόνες που θέλετε να αλλάξετε το μέγεθος. Κάντε δεξί κλικ στο αρχείο “resize.ps1” και κάντε κλικ στο “Εκτέλεση με Powershell”. Το script θα αλλάξει αυτόματα το μέγεθος όλων των φωτογραφιών σε αυτόν τον φάκελο και θα τις τοποθετήσει σε έναν υποφάκελο που ονομάζεται “resized”. Το script δεν είναι καταστροφικό και οι παλιές σας φωτογραφίες θα παραμείνουν ανέγγιχτες.
Προσαρμόστε τις διαστάσεις της παραγόμενης εικόνας
Από προεπιλογή, το script θα προσαρμόσει το μέγεθος του καμβά εικόνας ώστε να έχει μέγεθος 1000×1000 px και θα προσθέσει λευκό φόντο στον καμβά για να το κάνει. Εάν θέλετε, μπορείτε να αλλάξετε τα μεγέθη επεξεργάζοντάς το script χρησιμοποιώντας το σημειωματάριο
και στη γραμμή 19:
magick "$oldPath" -resize 1000x1000 -background white -gravity center -extent 1000x1000 "$newPath"
αλλάξτε το “1000×1000” στην επιθυμητή διάσταση. Εάν οι εικόνες σας έχουν μαύρο φόντο, μπορείτε επίσης να αλλάξετε την παράμετρο
“-background white”
Στο:
“-background black”
για να προσθέσετε μαύρο χρώμα στον καμβά αντί για λευκό.
Χρησιμοποιούμε cookies για να σας προσφέρουμε την καλύτερη εμπειρία πλοήγησης. Πατώντας αποδοχή, δηλώνετε ότι αποδέχεστε την χρήση των cookies σύμφωνα με την πολιτική απορρήτου.
Όταν επισκέπτεστε έναν ιστότοπο, αυτός μπορεί να αποθηκεύσει ή να ανακτήσει πληροφορίες από τον περιηγητή σας, κυρίως στη μορφή των cookies. Εδώ μπορείτε να επιλέξετε τις ρυθμίσεις cookies.
Αυτά τα cookies είναι απαραίτητα για τη λειτουργία του ιστότοπου και δεν μπορούν να απενεργοποιηθούν.
wordpress_test_cookie
wordpress_logged_in_
wordpress_sec
Αυτά τα cookies μας επιτρέπουν να καταγράφουμε την επισκεψιμότητα και τον τρόπο χρήσης του ιστότοπου ώστε να μπορούμε να βελτιώνουμε τις υπηρεσίες μας.
Τα cookies αυτά εισάγονται από την Google και μας επιτρέπουν να καταγράφουμε την επισκεψιμότητα του ιστότοπου και την αλληλεπίδραση των χρηστών ώστε να μπορούμε να βελτιώνουμε τις υπηρεσίες μας.