Εργασία με εικόνες

Η κλάση Nette\Utils\Image απλοποιεί τον χειρισμό εικόνων, όπως την αλλαγή μεγέθους, την περικοπή, την όξυνση, τη σχεδίαση ή τη συγχώνευση πολλαπλών εικόνων.

Η PHP διαθέτει ένα εκτεταμένο σύνολο συναρτήσεων για τον χειρισμό εικόνων. Αλλά το API τους δεν είναι πολύ βολικό. Δεν θα ήταν το Nette Framework αν δεν παρουσίαζε ένα σέξι API.

Εγκατάσταση:

composer require nette/utils

Όλα τα παραδείγματα προϋποθέτουν ότι έχει δημιουργηθεί ένα ψευδώνυμο:

use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;

Δημιουργία εικόνας

Δημιουργούμε μια νέα εικόνα true color, για παράδειγμα με διαστάσεις 100×200:

$image = Image::fromBlank(100, 200);

Προαιρετικά, μπορείτε να καθορίσετε το χρώμα φόντου (το προεπιλεγμένο είναι μαύρο):

$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));

Ή φορτώνουμε την εικόνα από ένα αρχείο:

$image = Image::fromFile('nette.jpg');

Αποθήκευση εικόνας

Η εικόνα μπορεί να αποθηκευτεί σε ένα αρχείο:

$image->save('resampled.jpg');

Μπορούμε να καθορίσουμε την ποιότητα συμπίεσης στην περιοχή 0..100 για JPEG (προεπιλογή 85), WEBP (προεπιλογή 80) και AVIF (προεπιλογή 30) και 0..9 για PNG (προεπιλογή 9):

$image->save('resampled.jpg', 80); // JPEG, ποιότητα 80%

Εάν η μορφή δεν είναι προφανής από την επέκταση του αρχείου, μπορεί να καθοριστεί με μια σταθερά:

$image->save('resampled.tmp', null, ImageType::JPEG);

Η εικόνα μπορεί να γραφτεί σε μια μεταβλητή αντί για τον δίσκο:

$data = $image->toString(ImageType::JPEG, 80); // JPEG, ποιότητα 80%

ή να σταλεί απευθείας στον περιηγητή με την κατάλληλη κεφαλίδα HTTP Content-Type:

// στέλνει την κεφαλίδα Content-Type: image/png
$image->send(ImageType::PNG);

Μορφές

Οι υποστηριζόμενες μορφές είναι JPEG, PNG, GIF, WebP, AVIF και BMP, ωστόσο, πρέπει επίσης να υποστηρίζονται από την έκδοση PHP σας, την οποία μπορείτε να ελέγξετε με τη συνάρτηση isTypeSupported(). Οι κινούμενες εικόνες δεν υποστηρίζονται.

Η μορφή αντιπροσωπεύεται από τις σταθερές ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF και ImageType::BMP.

$supported = Image::isTypeSupported(ImageType::JPEG);

Χρειάζεται να ανιχνεύσετε τη μορφή της εικόνας κατά τη φόρτωση; Η μέθοδος την επιστρέφει στη δεύτερη παράμετρο:

$image = Image::fromFile('nette.jpg', $type);

Η ανίχνευση από μόνη της χωρίς φόρτωση της εικόνας γίνεται από την Image::detectTypeFromFile().

Αλλαγή μεγέθους

Μια συχνή λειτουργία είναι η αλλαγή των διαστάσεων της εικόνας. Οι τρέχουσες διαστάσεις επιστρέφονται από τις μεθόδους getWidth() και getHeight().

Η μέθοδος resize() χρησιμοποιείται για την αλλαγή μεγέθους. Παράδειγμα αναλογικής αλλαγής μεγέθους έτσι ώστε να μην υπερβαίνει τις διαστάσεις 500×300 pixels (είτε το πλάτος θα είναι ακριβώς 500 px είτε το ύψος θα είναι ακριβώς 300 px, μία από τις διαστάσεις υπολογίζεται για να διατηρηθεί η αναλογία διαστάσεων):

$image->resize(500, 300);

Είναι δυνατό να καθοριστεί μόνο μία διάσταση και η άλλη θα υπολογιστεί:

$image->resize(500, null); // πλάτος 500px, το ύψος θα υπολογιστεί

$image->resize(null, 300); // το πλάτος θα υπολογιστεί, ύψος 300px

Οποιαδήποτε διάσταση μπορεί επίσης να καθοριστεί ως ποσοστό:

$image->resize('75%', 300); // 75 % × 300px

Η συμπεριφορά της resize μπορεί να επηρεαστεί από τις ακόλουθες σημαίες. Όλες εκτός από την Image::Stretch διατηρούν την αναλογία διαστάσεων.

Σημαία Περιγραφή
Image::OrSmaller (προεπιλογή) οι τελικές διαστάσεις θα είναι μικρότερες ή ίσες με τις ζητούμενες διαστάσεις
Image::OrBigger γεμίζει (και πιθανώς υπερβαίνει σε μία διάσταση) την περιοχή στόχο
Image::Cover γεμίζει την περιοχή στόχο και περικόπτει ό,τι υπερβαίνει
Image::ShrinkOnly μόνο σμίκρυνση (αποτρέπει το τέντωμα μιας μικρής εικόνας)
Image::Stretch δεν διατηρεί την αναλογία διαστάσεων

Οι σημαίες καθορίζονται ως το τρίτο όρισμα της συνάρτησης:

$image->resize(500, 300, Image::OrBigger);

Οι σημαίες μπορούν να συνδυαστούν:

$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);

Οι εικόνες μπορούν να αναστραφούν κάθετα ή οριζόντια καθορίζοντας μία από τις διαστάσεις (ή και τις δύο) ως αρνητικό αριθμό:

$flipped = $image->resize(null, '-100%'); // κάθετη αναστροφή

$flipped = $image->resize('-100%', '-100%'); // περιστροφή 180°

$flipped = $image->resize(-125, 500); // αλλαγή μεγέθους & οριζόντια αναστροφή

Μετά τη σμίκρυνση της εικόνας, η εμφάνισή της μπορεί να βελτιωθεί με μια ελαφριά όξυνση:

$image->sharpen();

Περικοπή

Η μέθοδος crop() χρησιμοποιείται για την περικοπή:

$image->crop($left, $top, $width, $height);

Παρόμοια με την resize(), όλες οι τιμές μπορούν να καθοριστούν ως ποσοστά. Τα ποσοστά για $left και $top υπολογίζονται από τον εναπομείναντα χώρο, παρόμοια με την ιδιότητα CSS background-position:

$image->crop('100%', '50%', '80%', '80%');

Η εικόνα μπορεί επίσης να περικοπεί αυτόματα, για παράδειγμα, περικοπή μαύρων περιθωρίων:

$image->cropAuto(IMG_CROP_BLACK);

Η μέθοδος cropAuto() είναι μια αντικειμενοστρεφής αντικατάσταση της συνάρτησης imagecropauto(), στην τεκμηρίωσή της θα βρείτε περισσότερες πληροφορίες.

Χρώματα

Η μέθοδος ImageColor::rgb() σας επιτρέπει να ορίσετε ένα χρώμα χρησιμοποιώντας τις τιμές κόκκινου, πράσινου και μπλε (RGB). Προαιρετικά, μπορείτε επίσης να καθορίσετε μια τιμή διαφάνειας στην περιοχή από 0 (εντελώς διαφανές) έως 1 (εντελώς αδιαφανές), δηλαδή όπως στο CSS.

$color = ImageColor::rgb(255, 0, 0); // Κόκκινο
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Ημιδιαφανές μπλε

Η μέθοδος ImageColor::hex() σας επιτρέπει να ορίσετε ένα χρώμα χρησιμοποιώντας τη δεκαεξαδική μορφή, παρόμοια με το CSS. Υποστηρίζει τις μορφές #rgb, #rrggbb, #rgba και #rrggbbaa:

$color = ImageColor::hex("#F00"); // Κόκκινο
$transparentGreen = ImageColor::hex("#00FF0080"); // Ημιδιαφανές πράσινο

Τα χρώματα μπορούν να χρησιμοποιηθούν σε άλλες μεθόδους, όπως ellipse(), fill() κ.λπ.

Σχέδιο και επεξεργασία

Μπορείς να σχεδιάσεις, μπορείς να γράψεις, αλλά μην σκίζεις τα φύλλα. Όλες οι συναρτήσεις PHP για την εργασία με εικόνες είναι διαθέσιμες σε εσάς, δείτε Přehled metod, αλλά σε αντικειμενοστρεφή μορφή:

$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));

Επειδή οι συναρτήσεις PHP για τη σχεδίαση ορθογωνίων είναι μη πρακτικές λόγω του καθορισμού συντεταγμένων, η κλάση Image προσφέρει τις αντικαταστάσεις τους με τη μορφή των συναρτήσεων rectangleWH() και filledRectangleWH().

Σύνδεση πολλαπλών εικόνων

Μπορείτε εύκολα να εισαγάγετε μια άλλη εικόνα σε μια εικόνα:

$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));

// οι συντεταγμένες μπορούν να καθοριστούν ξανά ως ποσοστά
$blank->place($logo, '80%', '80%'); // εισάγουμε κοντά στην κάτω δεξιά γωνία

Κατά την εισαγωγή, το κανάλι άλφα γίνεται σεβαστό, επιπλέον, μπορούμε να επηρεάσουμε τη διαφάνεια της εισαγόμενης εικόνας (δημιουργούμε ένα λεγόμενο υδατογράφημα):

$blank->place($image, '80%', '80%', 25); // η διαφάνεια είναι 25 %

Ένα τέτοιο API είναι πραγματικά χαρά να το χρησιμοποιείς!

Επισκόπηση μεθόδων

static fromBlank (int $width, int $height, ?ImageColor $color=null)Image

Δημιουργεί μια νέα εικόνα true color με τις δεδομένες διαστάσεις. Το προεπιλεγμένο χρώμα είναι μαύρο.

static fromFile (string $file, int &$detectedFormat=null)Image

Φορτώνει μια εικόνα από ένα αρχείο και επιστρέφει τον τύπο της στο $detectedFormat.

static fromString (string $s, int &$detectedFormat=null)Image

Φορτώνει μια εικόνα από μια συμβολοσειρά και επιστρέφει τον τύπο της στο $detectedFormat.

static rgb (int $red, int $green, int $blue, int $transparency=0)array

Αυτή η συνάρτηση έχει αντικατασταθεί από την κλάση ImageColor, δείτε χρώματα.

static typeToExtension (int $type)string

Επιστρέφει την επέκταση αρχείου για τον δεδομένο τύπο.

static typeToMimeType (int $type)string

Επιστρέφει τον τύπο mime για τον δεδομένο τύπο.

static extensionToType (string $extension)int

Επιστρέφει τον τύπο της εικόνας με βάση την επέκταση του αρχείου.

static detectTypeFromFile (string $file, int &$width=null, int &$height=null)?int

Επιστρέφει τον τύπο της εικόνας και στις παραμέτρους $width και $height επίσης τις διαστάσεις της.

static detectTypeFromString (string $s, int &$width=null, int &$height=null)?int

Επιστρέφει τον τύπο της εικόνας από μια συμβολοσειρά και στις παραμέτρους $width και $height επίσης τις διαστάσεις της.

static isTypeSupported (int $type)bool

Ελέγχει αν υποστηρίζεται ο δεδομένος τύπος εικόνας.

static getSupportedTypes(): array

Επιστρέφει έναν πίνακα με τους υποστηριζόμενους τύπους εικόνας.

static calculateTextBox (string $text, string $fontFile, float $size, float $angle=0, array $options=[])array

Υπολογίζει τις διαστάσεις του ορθογωνίου που περιβάλλει το κείμενο σε μια συγκεκριμένη γραμματοσειρά και μέγεθος. Επιστρέφει έναν συσχετιστικό πίνακα που περιέχει τα κλειδιά left, top, width, height. Το αριστερό περιθώριο μπορεί επίσης να είναι αρνητικό εάν το κείμενο ξεκινά με αριστερή υποδιαστολή.

affine (array $affine, ?array $clip=null)Image

Επιστρέφει μια εικόνα που περιέχει την αφινικά μετασχηματισμένη εικόνα src χρησιμοποιώντας μια προαιρετική περιοχή περικοπής. (περισσότερα).

affineMatrixConcat (array $m1, array $m2)array

Επιστρέφει τη συνένωση δύο πινάκων αφινικού μετασχηματισμού, η οποία είναι χρήσιμη εάν πρέπει να εφαρμοστούν ταυτόχρονα πολλαπλοί μετασχηματισμοί στην ίδια εικόνα. (περισσότερα)

affineMatrixGet (int $type, ?mixed $options=null)array

Επιστρέφει έναν πίνακα μετασχηματισμού. (περισσότερα)

alphaBlending (bool $on)void

Επιτρέπει δύο διαφορετικούς τρόπους σχεδίασης σε εικόνες truecolor. Στη λειτουργία ανάμειξης, το στοιχείο του καναλιού άλφα του χρώματος που χρησιμοποιείται σε όλες τις συναρτήσεις σχεδίασης, όπως η setPixel(), καθορίζει σε ποιο βαθμό θα πρέπει να επιτρέπεται η διέλευση του βασικού χρώματος. Ως αποτέλεσμα, το υπάρχον χρώμα σε αυτό το σημείο αναμειγνύεται αυτόματα με το σχεδιασμένο χρώμα και το αποτέλεσμα αποθηκεύεται στην εικόνα. Το τελικό pixel είναι αδιαφανές. Στη λειτουργία χωρίς ανάμειξη, το σχεδιασμένο χρώμα αντιγράφεται κυριολεκτικά με τις πληροφορίες του καναλιού άλφα και αντικαθιστά το pixel στόχο. Η λειτουργία ανάμειξης δεν είναι διαθέσιμη κατά τη σχεδίαση σε εικόνες παλέτας. (περισσότερα)

antialias (bool $on): void

Ενεργοποιήστε τη σχεδίαση εξομαλυσμένων γραμμών και πολυγώνων. Δεν υποστηρίζει κανάλια άλφα. Λειτουργεί μόνο σε εικόνες truecolor.

Η χρήση εξομαλυσμένων πρωτογενών με διαφανές χρώμα φόντου μπορεί να καταλήξει σε κάποια απροσδόκητα αποτελέσματα. Η μέθοδος ανάμειξης χρησιμοποιεί το χρώμα φόντου όπως όλα τα άλλα χρώματα. (περισσότερα)

arc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color)void

Σχεδιάζει ένα τόξο κύκλου με κέντρο στις δεδομένες συντεταγμένες. (περισσότερα)

colorAllocate (int $red, int $green, int $blue)int

Επιστρέφει ένα αναγνωριστικό χρώματος που αντιπροσωπεύει το χρώμα που αποτελείται από τα δεδομένα συστατικά RGB. Πρέπει να καλείται για τη δημιουργία κάθε χρώματος που πρόκειται να χρησιμοποιηθεί στην εικόνα. (περισσότερα)

colorAllocateAlpha (int $red, int $green, int $blue, int $alpha)int

Συμπεριφέρεται το ίδιο με την colorAllocate() με την προσθήκη της παραμέτρου διαφάνειας $alpha. (περισσότερα)

colorAt (int $x, int $y)int

Επιστρέφει τον δείκτη του χρώματος του pixel στην καθορισμένη θέση στην εικόνα. Εάν η εικόνα είναι truecolor, αυτή η συνάρτηση επιστρέφει την τιμή RGB αυτού του pixel ως ακέραιο. Χρησιμοποιήστε bitshifting και bitmasking για πρόσβαση στις ξεχωριστές τιμές των συστατικών κόκκινου, πράσινου και μπλε: (περισσότερα)

colorClosest (int $red, int $green, int $blue)int

Επιστρέφει τον δείκτη του χρώματος στην παλέτα της εικόνας που είναι «πλησιέστερος» στην καθορισμένη τιμή RGB. Η “απόσταση” μεταξύ του επιθυμητού χρώματος και κάθε χρώματος στην παλέτα υπολογίζεται σαν οι τιμές RGB να αντιπροσώπευαν σημεία σε έναν τρισδιάστατο χώρο. (περισσότερα)

colorClosestAlpha (int $red, int $green, int $blue, int $alpha)int

Επιστρέφει τον δείκτη του χρώματος στην παλέτα της εικόνας που είναι «πλησιέστερος» στην καθορισμένη τιμή RGB και στο επίπεδο $alpha. (περισσότερα)

colorClosestHWB (int $red, int $green, int $blue)int

Λάβετε τον δείκτη του χρώματος που έχει την απόχρωση, το λευκό και το μαύρο χρώμα πλησιέστερα στο δεδομένο χρώμα. (περισσότερα)

colorDeallocate (int $color)void

Αποδεσμεύει ένα χρώμα που είχε προηγουμένως εκχωρηθεί χρησιμοποιώντας colorAllocate() ή colorAllocateAlpha(). (περισσότερα)

colorExact (int $red, int $green, int $blue)int

Επιστρέφει τον δείκτη του καθορισμένου χρώματος στην παλέτα της εικόνας. (περισσότερα)

colorExactAlpha (int $red, int $green, int $blue, int $alpha)int

Επιστρέφει τον δείκτη του καθορισμένου χρώματος + άλφα στην παλέτα της εικόνας. (περισσότερα)

colorMatch (Image $image2)void

Προσαρμόζει τα χρώματα της παλέτας στη δεύτερη εικόνα. (περισσότερα)

colorResolve (int $red, int $green, int $blue)int

Επιστρέφει τον δείκτη χρώματος για το επιθυμητό χρώμα, είτε το ακριβές χρώμα είτε την πλησιέστερη δυνατή εναλλακτική λύση. (περισσότερα)

colorResolveAlpha (int $red, int $green, int $blue, int $alpha)int

Επιστρέφει τον δείκτη χρώματος για το επιθυμητό χρώμα, είτε το ακριβές χρώμα είτε την πλησιέστερη δυνατή εναλλακτική λύση. (περισσότερα)

colorSet (int $index, int $red, int $green, int $blue)void

Ορίζει τον καθορισμένο δείκτη στην παλέτα στο καθορισμένο χρώμα. (περισσότερα)

colorsForIndex (int $index)array

Λαμβάνει το χρώμα του καθορισμένου δείκτη. (περισσότερα)

colorsTotal(): int

Επιστρέφει τον αριθμό των χρωμάτων στην παλέτα της εικόνας. (περισσότερα)

colorTransparent (?int $color=null)int

Λαμβάνει ή ορίζει το διαφανές χρώμα στην εικόνα. (περισσότερα)

convolution (array $matrix, float $div, float $offset)void

Εφαρμόζει έναν πίνακα συνέλιξης στην εικόνα, χρησιμοποιώντας τον δεδομένο συντελεστή και μετατόπιση. (περισσότερα)

Απαιτεί την παρουσία της Bundled GD extension, επομένως μπορεί να μην λειτουργεί παντού.

copy (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH)void

Αντιγράφει ένα τμήμα του $src στην εικόνα ξεκινώντας από τις συντεταγμένες $srcX, $srcY με πλάτος $srcW και ύψος $srcH. Το καθορισμένο τμήμα θα αντιγραφεί στις συντεταγμένες $dstX και $dstY. (περισσότερα)

copyMerge (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity)void

Αντιγράφει ένα τμήμα του $src στην εικόνα ξεκινώντας από τις συντεταγμένες $srcX, $srcY με πλάτος $srcW και ύψος $srcH. Το καθορισμένο τμήμα θα αντιγραφεί στις συντεταγμένες $dstX και $dstY. (περισσότερα)

copyMergeGray (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity)void

Αντιγράφει ένα τμήμα του $src στην εικόνα ξεκινώντας από τις συντεταγμένες $srcX, $srcY με πλάτος $srcW και ύψος $srcH. Το καθορισμένο τμήμα θα αντιγραφεί στις συντεταγμένες $dstX και $dstY.

Αυτή η συνάρτηση είναι πανομοιότυπη με την copyMerge() με τη διαφορά ότι κατά τη συγχώνευση διατηρεί την απόχρωση της πηγής μετατρέποντας τα pixel στόχου σε κλίμακα του γκρι πριν από τη λειτουργία αντιγραφής. (περισσότερα)

copyResampled (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Αντιγράφει μια ορθογώνια περιοχή μιας εικόνας σε μια άλλη εικόνα, παρεμβάλλοντας ομαλά τις τιμές των pixel, έτσι ώστε ιδίως η μείωση του μεγέθους της εικόνας να διατηρεί ακόμα μεγάλη ευκρίνεια.

Με άλλα λόγια, η copyResampled() παίρνει μια ορθογώνια περιοχή από το $src πλάτους $srcW και ύψους $srcH στη θέση ($srcX, $srcY) και την τοποθετεί σε μια ορθογώνια περιοχή της εικόνας πλάτους $dstW και ύψους $dstH στη θέση ($dstX, $dstY).

Εάν οι συντεταγμένες πηγής και στόχου, το πλάτος και το ύψος διαφέρουν, πραγματοποιείται αντίστοιχο τέντωμα ή σμίκρυνση του τμήματος της εικόνας. Οι συντεταγμένες αναφέρονται στην επάνω αριστερή γωνία. Αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για την αντιγραφή περιοχών στην ίδια εικόνα, αλλά εάν οι περιοχές επικαλύπτονται, τα αποτελέσματα δεν θα είναι προβλέψιμα. (περισσότερα)

copyResized (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Αντιγράφει μια ορθογώνια περιοχή μιας εικόνας σε μια άλλη εικόνα. Με άλλα λόγια, η copyResized() λαμβάνει μια ορθογώνια περιοχή από το $src πλάτους $srcW και ύψους $srcH στη θέση ($srcX, $srcY) και την τοποθετεί σε μια ορθογώνια περιοχή της εικόνας πλάτους $dstW ] και ύψους $dstH στη θέση ($dstX, $dstY).

Εάν οι συντεταγμένες πηγής και στόχου, το πλάτος και το ύψος διαφέρουν, πραγματοποιείται αντίστοιχο τέντωμα ή σμίκρυνση του τμήματος της εικόνας. Οι συντεταγμένες αναφέρονται στην επάνω αριστερή γωνία. Αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για την αντιγραφή περιοχών στην ίδια εικόνα, αλλά εάν οι περιοχές επικαλύπτονται, τα αποτελέσματα δεν θα είναι προβλέψιμα. (περισσότερα)

crop (int|string $left, int|string $top, int|string $width, int|string $height)Image

Περικόπτει την εικόνα στην δεδομένη ορθογώνια περιοχή. Οι διαστάσεις μπορούν να καθοριστούν ως ακέραιοι σε pixel ή συμβολοσειρές σε ποσοστά (για παράδειγμα '50%').

cropAuto (int $mode=-1, float $threshold=.5, ?ImageColor $color=null)Image

Περικόπτει αυτόματα την εικόνα σύμφωνα με τον δεδομένο $mode. (περισσότερα)

ellipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color)void

Σχεδιάζει μια έλλειψη με κέντρο στις καθορισμένες συντεταγμένες. (περισσότερα)

fill (int $x, int $y, ImageColor $color)void

Γεμίζει μια περιοχή ξεκινώντας από τη δεδομένη συντεταγμένη (επάνω αριστερά είναι 0, 0) με το δεδομένο $color. (περισσότερα)

filledArc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style)void

Σχεδιάζει ένα μερικό τόξο με κέντρο στις καθορισμένες συντεταγμένες. (περισσότερα)

filledEllipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color)void

Σχεδιάζει μια έλλειψη με κέντρο στις καθορισμένες συντεταγμένες. (περισσότερα)

filledPolygon (array $points, ImageColor $color)void

Δημιουργεί ένα γεμάτο πολύγωνο στην εικόνα. (περισσότερα)

filledRectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Δημιουργεί ένα ορθογώνιο γεμάτο με $color στην εικόνα ξεκινώντας από το σημείο $x1 & $y1 και τελειώνοντας στο σημείο $x2 & $y2. Το σημείο 0, 0 είναι η επάνω αριστερή γωνία της εικόνας. (περισσότερα)

filledRectangleWH (int $left, int $top, int $width, int $height, ImageColor $color)void

Δημιουργεί ένα ορθογώνιο γεμάτο με $color στην εικόνα ξεκινώντας από το σημείο $left & $top με πλάτος $width και ύψος $height. Το σημείο 0, 0 είναι η επάνω αριστερή γωνία της εικόνας.

fillToBorder (int $x, int $y, int $border, ImageColor $color)void

Σχεδιάζει ένα γέμισμα του οποίου το χρώμα περιγράμματος ορίζεται από το $border. Το σημείο εκκίνησης του γεμίσματος είναι $x, $y (επάνω αριστερά είναι 0, 0) και η περιοχή γεμίζεται με το χρώμα $color. (περισσότερα)

filter (int $filtertype, int …$args)void

Εφαρμόζει το δεδομένο φίλτρο $filtertype στην εικόνα. (περισσότερα)

flip (int $mode): void

Αναστρέφει την εικόνα χρησιμοποιώντας τον δεδομένο $mode. (περισσότερα)

ftText (float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[])array

Γράφει κείμενο στην εικόνα. (περισσότερα)

gammaCorrect (float $inputgamma, float $outputgamma)void

Εφαρμόζει διόρθωση γάμμα στην εικόνα σε σχέση με το γάμμα εισόδου και εξόδου. (περισσότερα)

getClip(): array

Επιστρέφει την τρέχουσα περικοπή, δηλαδή την περιοχή πέρα από την οποία δεν θα σχεδιαστούν pixel. (περισσότερα)

getHeight(): int

Επιστρέφει το ύψος της εικόνας.

getImageResource(): resource|GdImage

Επιστρέφει τον αρχικό πόρο.

getWidth(): int

Επιστρέφει το πλάτος της εικόνας.

interlace (?int $interlace=null)int

Ενεργοποιεί ή απενεργοποιεί τη λειτουργία πλεξίματος. Εάν η λειτουργία πλεξίματος είναι ενεργοποιημένη και η εικόνα αποθηκεύεται ως JPEG, θα αποθηκευτεί ως προοδευτικό JPEG. (περισσότερα)

isTrueColor(): bool

Ελέγχει αν η εικόνα είναι truecolor. (περισσότερα)

layerEffect (int $effect)void

Ορίστε τη σημαία ανάμειξης άλφα για χρήση εφέ επιπέδων. (περισσότερα)

line (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Σχεδιάζει μια γραμμή μεταξύ δύο δεδομένων σημείων. (περισσότερα)

openPolygon (array $points, ImageColor $color)void

Σχεδιάζει ένα ανοιχτό πολύγωνο στην εικόνα. Σε αντίθεση με το polygon(), δεν σχεδιάζεται γραμμή μεταξύ του τελευταίου και του πρώτου σημείου. (περισσότερα)

paletteCopy (Image $source)void

Αντιγράφει την παλέτα από το $source στην εικόνα. (περισσότερα)

paletteToTrueColor(): void

Μετατρέπει μια εικόνα βασισμένη σε παλέτα σε μια εικόνα πλήρους χρώματος. (περισσότερα)

place (Image $image, int|string $left=0, int|string $top=0, int $opacity=100)Image

Αντιγράφει την $image στην εικόνα στις συντεταγμένες $left και $top. Οι συντεταγμένες μπορούν να καθοριστούν ως ακέραιοι σε pixel ή συμβολοσειρές σε ποσοστά (για παράδειγμα '50%').

polygon (array $points, ImageColor $color)void

Δημιουργεί ένα πολύγωνο στην εικόνα. (περισσότερα)

rectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Δημιουργεί ένα ορθογώνιο στις καθορισμένες συντεταγμένες. (περισσότερα)

rectangleWH (int $left, int $top, int $width, int $height, ImageColor $color)void

Δημιουργεί ένα ορθογώνιο στις καθορισμένες συντεταγμένες.

resize (int|string $width, int|string $height, int $flags=Image::OrSmaller)Image

Αλλάζει το μέγεθος της εικόνας, περισσότερες πληροφορίες. Οι διαστάσεις μπορούν να καθοριστούν ως ακέραιοι σε pixel ή συμβολοσειρές σε ποσοστά (για παράδειγμα '50%').

resolution (?int $resX=null, ?int $resY=null)mixed

Ορίζει ή επιστρέφει την ανάλυση της εικόνας σε DPI (κουκκίδες ανά ίντσα). Εάν δεν καθοριστεί καμία από τις προαιρετικές παραμέτρους, η τρέχουσα ανάλυση επιστρέφεται ως ευρετηριασμένος πίνακας. Εάν καθοριστεί μόνο το $resX, η οριζόντια και η κάθετη ανάλυση ορίζονται σε αυτήν την τιμή. Εάν καθοριστούν και οι δύο προαιρετικές παράμετροι, η οριζόντια και η κάθετη ανάλυση ορίζονται σε αυτές τις τιμές.

Η ανάλυση χρησιμοποιείται μόνο ως μετα-πληροφορία όταν οι εικόνες διαβάζονται και γράφονται σε μορφές που υποστηρίζουν αυτό το είδος πληροφορίας (επί του παρόντος PNG και JPEG). Δεν επηρεάζει καμία λειτουργία σχεδίασης. Η προεπιλεγμένη ανάλυση των νέων εικόνων είναι 96 DPI. (περισσότερα)

rotate (float $angle, int $backgroundColor)Image

Περιστρέφει την εικόνα χρησιμοποιώντας την καθορισμένη $angle σε μοίρες. Το κέντρο περιστροφής είναι το κέντρο της εικόνας και η περιστρεφόμενη εικόνα μπορεί να έχει διαφορετικές διαστάσεις από την αρχική εικόνα. (περισσότερα)

Απαιτεί την παρουσία της Bundled GD extension, επομένως μπορεί να μην λειτουργεί παντού.

save (string $file, ?int $quality=null, ?int $type=null)void

Αποθηκεύει την εικόνα σε ένα αρχείο.

Η ποιότητα συμπίεσης κυμαίνεται από 0..100 για JPEG (προεπιλογή 85), WEBP (προεπιλογή 80) και AVIF (προεπιλογή 30) και 0..9 για PNG (προεπιλογή 9). Εάν ο τύπος δεν είναι προφανής από την επέκταση του αρχείου, μπορείτε να τον καθορίσετε χρησιμοποιώντας μία από τις σταθερές ImageType.

saveAlpha (bool $saveflag)void

Ορίζει τη σημαία για το αν θα διατηρηθούν πλήρεις πληροφορίες καναλιού άλφα κατά την αποθήκευση εικόνων PNG (σε αντίθεση με τη μονοχρωματική διαφάνεια).

Η ανάμειξη άλφα πρέπει να απενεργοποιηθεί (alphaBlending(false)) για να διατηρηθεί το κανάλι άλφα στην πρώτη θέση. (περισσότερα)

scale (int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED)Image

Κλιμακώνει την εικόνα χρησιμοποιώντας τον δεδομένο αλγόριθμο παρεμβολής. (περισσότερα)

send (int $type=ImageType::JPEG, ?int $quality=null)void

Εξάγει την εικόνα στον περιηγητή.

Η ποιότητα συμπίεσης κυμαίνεται από 0..100 για JPEG (προεπιλογή 85), WEBP (προεπιλογή 80) και AVIF (προεπιλογή 30) και 0..9 για PNG (προεπιλογή 9).

setBrush (Image $brush)void

Ορίζει την εικόνα πινέλου που θα χρησιμοποιηθεί σε όλες τις συναρτήσεις σχεδίασης γραμμών (για παράδειγμα line() και polygon()) κατά τη σχεδίαση με τα ειδικά χρώματα IMG_COLOR_BRUSHED ή IMG_COLOR_STYLEDBRUSHED. (περισσότερα)

setClip (int $x1, int $y1, int $x2, int $y2)void

Ορίζει την τρέχουσα περικοπή, δηλαδή την περιοχή πέρα από την οποία δεν θα σχεδιαστούν pixel. (περισσότερα)

setInterpolation (int $method=IMG_BILINEAR_FIXED)void

Ορίζει τη μέθοδο παρεμβολής, η οποία επηρεάζει τις μεθόδους rotate() και affine(). (περισσότερα)

setPixel (int $x, int $y, ImageColor $color)void

Σχεδιάζει ένα pixel στην καθορισμένη συντεταγμένη. (περισσότερα)

setStyle (array $style)void

Ορίζει το στυλ που θα χρησιμοποιηθεί από όλες τις συναρτήσεις σχεδίασης γραμμών (για παράδειγμα line() και polygon()) κατά τη σχεδίαση με το ειδικό χρώμα IMG_COLOR_STYLED ή γραμμών εικόνων με το χρώμα IMG_COLOR_STYLEDBRUSHED. (περισσότερα)

setThickness (int $thickness)void

Ορίζει το πάχος των γραμμών κατά τη σχεδίαση ορθογωνίων, πολυγώνων, τόξων κ.λπ. σε $thickness pixel. (περισσότερα)

setTile (Image $tile)void

Ορίζει την εικόνα πλακιδίου που θα χρησιμοποιηθεί σε όλες τις συναρτήσεις γεμίσματος περιοχών (για παράδειγμα fill() και filledPolygon()) κατά το γέμισμα με το ειδικό χρώμα IMG_COLOR_TILED.

Ένα πλακίδιο είναι μια εικόνα που χρησιμοποιείται για το γέμισμα μιας περιοχής με ένα επαναλαμβανόμενο μοτίβο. Οποιαδήποτε εικόνα μπορεί να χρησιμοποιηθεί ως πλακίδιο, και ορίζοντας τον δείκτη διαφανούς χρώματος της εικόνας πλακιδίου με colorTransparent(), μπορεί να δημιουργηθεί ένα πλακίδιο όπου ορισμένα τμήματα της υποκείμενης περιοχής θα φαίνονται. (περισσότερα)

sharpen(): Image

Οξύνει την εικόνα.

Απαιτεί την παρουσία της Bundled GD extension, επομένως μπορεί να μην λειτουργεί παντού.

toString (int $type=ImageType::JPEG, ?int $quality=null)string

Αποθηκεύει την εικόνα σε μια συμβολοσειρά.

Η ποιότητα συμπίεσης κυμαίνεται από 0..100 για JPEG (προεπιλογή 85), WEBP (προεπιλογή 80) και AVIF (προεπιλογή 30) και 0..9 για PNG (προεπιλογή 9).

trueColorToPalette (bool $dither, int $ncolors)void

Μετατρέπει μια εικόνα truecolor σε παλέτα. (περισσότερα)

ttfText (float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[])array

Εξάγει το δεδομένο κείμενο στην εικόνα. (περισσότερα)

έκδοση: 4.0