Λειτουργίες εικόνας
Η κλάση 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
Γράφει το δεδομένο κείμενο στην εικόνα. (περισσότερα)