Λειτουργίες εικόνας

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

Η PHP διαθέτει ένα εκτεταμένο σύνολο λειτουργιών για την επεξεργασία εικόνων. Αλλά το API δεν είναι πολύ ωραίο. Δεν θα ήταν ένα Neat Framework να δημιουργήσει ένα σέξι API.

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

composer require nette/utils

Τα ακόλουθα παραδείγματα υποθέτουν ότι έχει οριστεί το ακόλουθο ψευδώνυμο κλάσης:

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

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

Θα δημιουργήσουμε μια νέα έγχρωμη εικόνα, για παράδειγμα με διαστάσεις 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 (είτε το πλάτος θα είναι ακριβώς 500px είτε το ύψος θα είναι ακριβώς 300px, μία από τις διαστάσεις υπολογίζεται για να διατηρηθεί η αναλογία διαστάσεων):

$image->resize(500, 300);

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

$image->resize(500, null); // πλάτος 500px, ύψος auto

$image->resize(null, 300); // πλάτος auto, ύψος 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); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue

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

$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green

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

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

Μπορείτε να σχεδιάσετε, να γράψετε, να χρησιμοποιήσετε όλες τις συναρτήσεις της PHP για την επεξεργασία εικόνων, βλέπε Επισκόπηση μεθόδων, αλλά σε ένα αντικειμενοστραφές περιτύλιγμα:

$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

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

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

Επιστρέφει έναν πίνακα υποστηριζόμενων τύπων εικόνας (σταθερές ImageType::XXX).

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

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

affineMatrixConcat(array $m1, array $m2)array

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

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

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

alphaBlending(bool $on): void

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

antialias(bool $on): void

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

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

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

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

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

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

colorTransparent(int $color=null)int

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

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

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

Απαιτεί Επέκταση GD, οπότε δεν είναι σίγουρο ότι θα λειτουργήσει παντού.

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(), με τη διαφορά ότι κατά τη συγχώνευση διατηρεί την απόχρωση της πηγής μετατρέποντας τα εικονοστοιχεία προορισμού σε κλίμακα του γκρι πριν από τη λειτουργία αντιγραφής. (περισσότερα)

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

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

Με άλλα λόγια, το 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

Περικόπτει μια εικόνα στη δεδομένη ορθογώνια περιοχή. Οι διαστάσεις μπορούν να μεταβιβαστούν ως ακέραιοι αριθμοί σε pixels ή συμβολοσειρές σε ποσοστό (π.χ. '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

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

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

Ανακτά το τρέχον ορθογώνιο αποκοπής, δηλαδή την περιοχή πέρα από την οποία δεν θα σχεδιαστεί κανένα εικονοστοιχείο. (περισσότερα)

getHeight(): int

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

getImageResource(): resource|GdImage

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

getWidth(): int

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

interlace(int $interlace=null)int

Ενεργοποιεί ή απενεργοποιεί το bit interlace. Εάν το bit interlace είναι ρυθμισμένο και η εικόνα χρησιμοποιείται ως εικόνα 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

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

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

Αντιγράφει το $image στην εικόνα στις συντεταγμένες $left και $top. Οι συντεταγμένες μπορούν να μεταβιβαστούν ως ακέραιοι αριθμοί σε pixels ή συμβολοσειρές σε ποσοστό (π.χ. '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

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

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

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

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

rotate(float $angle, int $backgroundColor)Image

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

Απαιτεί Επέκταση GD, οπότε δεν είναι σίγουρο ότι θα λειτουργήσει παντού.

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 πρέπει να είναι απενεργοποιημένο (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

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

setInterpolation(int $method=IMG_BILINEAR_FIXED)void

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

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

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

setStyle(array $style)void

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

setThickness(int $thickness)void

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

setTile(Image $tile)void

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

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

sharpen(): Image

Οξύνει λίγο την εικόνα.

Απαιτεί Επέκταση GD Bundled, οπότε δεν είναι σίγουρο ότι θα λειτουργήσει παντού.

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

Μετατρέπει μια εικόνα πραγματικού χρώματος σε εικόνα παλέτας. (περισσότερα)

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

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

έκδοση: 4.0