PHP: Αλλαγή μεγέθους όλων των εικόνων σε έναν κατάλογο


nc
Δημοσίευση: • Share Article:

@Στον παρακάτω κώδικα θα αλλάξουμε το μέγεθος όλων των εικόνων JPEG σε έναν συγκεκριμένο κατάλογο ώστε να έχουν πλάτος 640 pixel. Το ύψος θα υπολογιστεί αυτόματα με βάση τις διαστάσεις της αρχικής εικόνας. Θα αποθηκεύσουμε τις εικόνες με αλλαγή μεγέθους σε έναν νέο φάκελο με τίτλο "resized" . Όλες οι αρχικές εικόνες σε αυτήν την περίπτωση έχουν τις ίδιες διαστάσεις, αλλά ο κώδικας θα λειτουργεί σωστά με εικόνες που έχουν διαφορετικά μεγέθη και αναλογίες διαστάσεων.
$directory = 'Nature/';
$images = glob($directory."*.jpg");
 
foreach($images as $image) {
    $im_php = imagecreatefromjpeg($image);
    $im_php = imagescale($im_php, 640);
    $new_height = imagesy($im_php);
    $new_name = str_replace('-1920x1080', '-640x'.$new_height, basename($image));
    imagejpeg($im_php, $directory.'Resized/'.$new_name);
}
Στον παραπάνω κώδικα, ξεκινάμε χρησιμοποιώντας τη συνάρτηση glob() για να βρούμε όλες τις εικόνες με επέκταση .jpg στον κατάλογο με τίτλο Nature. Τα αρχεία εικόνας αποθηκεύονται σε έναν πίνακα. Δεδομένου ότι όλες οι εικόνες που θέλουμε να αλλάξουμε το μέγεθος είναι JPEG, χρησιμοποιούμε τη συνάρτηση imagecreatefromjpeg() για να τις φορτώσουμε. Στη συνέχεια η συνάρτηση imagescale() χρησιμοποιείται για την αλλαγή του μεγέθους της εικόνας σε ένα συγκεκριμένο πλάτος—640 pixel στην περίπτωσή μας. Δεν έχουμε καθορίσει σταθερό ύψος, επομένως το ύψος θα υπολογιστεί αυτόματα.
Κάθε ένα από τα αρχικά αρχεία εικόνας είχε διάσταση 1920x1080 pixels. Χρησιμοποιήσαμε την str_replace() ώστε το τελικό όνομα της εικόνας να έχει τη μορφή: εικόνα-1920X1080.
Τέλος, αποθηκεύσαμε τις εικόνες με την αλλαγή μεγέθους σε ένα φάκελο με το όνομα Resized με τα νέα ονόματα αρχείων. Μπορείτε επίσης να περάσετε μια τρίτη παράμετρο στη imagejpeg()συνάρτηση για να ορίσετε την ποιότητα του αποθηκευμένου αρχείου εικόνας. Εάν παραληφθεί η τρίτη παράμετρος, οι εικόνες αποθηκεύονται με προεπιλεγμένη ποιότητα 75.

Foreach programming

Εγγραφείτε για να βλέπετε τα εξειδικευμένα άρθρα.