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