Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Πώς να Ισοπαλία μια καρδιά με PHP GD

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

1 Ανοίξτε ένα πρόγραμμα επεξεργασίας κειμένου που δεν κάνει μορφοποίηση εμπλουτισμένου κειμένου , όπως το Notepad και πληκτρολογήστε το άνοιγμα PHP tag : ? .

Γράψτε μια συνάρτηση Bézier για την κατάρτιση καμπυλών . Η βιβλιοθήκη λειτουργία GD δεν περιλαμβάνει μια τέτοια λειτουργία , έτσι ώστε να δημιουργήσετε το δικό σας ( βλ. Πόρων) . Η ακόλουθη λειτουργία χρησιμοποιεί τη GD λειτουργία " imagesetpixel ", το οποίο καθορίζει ένα εικονοστοιχείο στις συντεταγμένες που καθορίζονται από τους δεύτερο και τρίτο παραμέτρους. Η τέταρτη παράμετρος καθορίζει το χρώμα και , όπως με τις περισσότερες λειτουργίες GD , η πρώτη παράμετρος είναι ένα αναγνωριστικό εικόνα .

Bezier λειτουργία ( & $ img , $ x , $ y , $ χρώματος , $ res ) {

$ cx = 3 * ( $ x [ 1 ] - $ x [ 0 ] ) ?

$ bx = 3 * ( $ x [ 2 ] - $ x [ 1 ] ) - $ cx ?

$ ax = $ x [ 3 ] - $ x [ 0 ] - $ cx - $ bx ?

$ cy = 3 * ( $ y [ 1 ] - $ y [ 0 ] ) ?

$ από = 3 * ( $ y [ 2 ] - $ y [ 1 ] ) - $ cy ?

$ ay = $ y [ 3 ] - $ y [ 0 ] - $ cy - $ από?

για ( $ i = 0 ? $ i <= $ res ? $ i + + ) {

$ t = $ i /$ res ?

$ xt = $ ax * pow ( $ t , 3 ) + $ bx * pow ( $ t , 2 ) + $ cx * $ t + $ x [ 0 ] ?

$ yt = $ ay * pow ( $ t , 3 ) + $ με * pow ( $ t , 2 ) + $ cy * $ t + $ y [ 0 ] ?

imagesetpixel ( $ img , γύρο ( $ xt ) , γύρο ( $ yt ) , $ χρώματος) ?

} }


εικόνων 3

προετοιμαστεί την εικόνα και τα χρώματα που χρειάζεστε . Στο παρακάτω παράδειγμα κώδικα , η εικόνα έχει προετοιμαστεί για να είναι 200 με 200 pixels , χρησιμοποιώντας τη λειτουργία " imagecreate » , η οποία δημιουργεί επίσης την εικόνα αναγνωριστικό " $ img ". Τα χρώματα κόκκινο και λευκό αρχικοποιείται με τη λειτουργία " imagecolorallocate " καθορίζοντας τις τιμές από 0 έως 255 για το κόκκινο , πράσινο και μπλε . Το πρώτο χρώμα αρχικοποιηθεί θα γίνει το χρώμα του φόντου

$ img = imagecreate ( 200 , 200 ) ? .

$ Λευκό = imagecolorallocate ( $ img , 255 , 255 , 255 ) ?

$ κόκκινο = imagecolorallocate ( $ img , 255 , 0 , 0 ) ?
Η 4

Δημιουργία δύο συστοιχίες για τις x και y συντεταγμένες από τα τέσσερα σημεία που θα καθορίσουν το σχήμα της καμπύλη Bézier . Για να καθορίσετε το σχήμα της καμπύλης , σκέφτονται από την άποψη των δύο διανύσματα εφαπτομένης , το μέγεθος της οποίας καθορίζει το ποσό της ταλάντωσης κατεύθυνση του φορέα έχει πάνω από την καμπύλη , σαν την πορεία της μπάλας που πέφτει σε ένα ισχυρό άνεμο . Το πρώτο από τα τέσσερα σημεία προσδιορίζει ένα από τα άκρα της καμπύλης και της ουράς του πρώτου φορέα, και το δεύτερο ορίζει το κεφάλι του φορέα. Η απόσταση μεταξύ των σημείων αντιστοιχεί στο μέγεθος και τη σχετική τους θέση καθορίζει την κατεύθυνση . Το τρίτο σημείο είναι η κεφαλή του δεύτερου φορέα και το τέταρτο σημείο είναι η ουρά του φορέα και η άλλη παράμετρο.

Στο παρακάτω παράδειγμα , τα τέσσερα σημεία είναι ( 100 , 40 ) , ( 150 , -10 ) , ( 250 , 80 ) και ( 100 , 180 ) , όπου η άνω , αριστερή γωνία της εικόνας είναι ( 0 , 0 ) . Οι x - συντεταγμένες για τα τελικά σημεία είναι και τα δύο 100 , η οποία τους κέντρα σε καμβά από αριστερά προς τα δεξιά . Ο Υ- συντεταγμένες δείχνουν το πρώτο τελικό σημείο στους 40 είναι πάνω από το άλλο σε 180 . Οι φορέα κεφάλια είναι τόσο πάνω όσο και προς τα δεξιά των αντίστοιχων παραμέτρων τους . Διαχωρίστε τις x και y συντεταγμένες σε δικές τους σειρές :

$ x_coords = array ( 100 , 150 , 250 , 100 ) ?

$ Y_coords = array ( 40 , -10 , 80 , 180 ) ?
5

Σχεδιάστε την καμπύλη με τη λειτουργία Bézier που δημιουργήσατε στο Βήμα 2 . Στη λειτουργία παράδειγμα, η πρώτη παράμετρος είναι το αναγνωριστικό εικόνα? Οι επόμενες δύο παράμετροι είναι οι συστοιχίες για τα χ και y συντεταγμένες ? Το τέταρτο είναι το χρώμα ? Και η τελευταία είναι η ανάλυση. Η παράμετρος Ψήφισμα καθορίζει τον αριθμό των σημείων που πρέπει να σχεδιάζονται , να διευκρινίζεται μεγαλύτερους αριθμούς για σαφώς καθορισμένες καμπύλες . Για παράδειγμα, πληκτρολογήστε :

bezier ( $ img , $ x_coords , $ y_coords , $ κόκκινο , 500 ) ?
Η 6

Επαναπροσδιορισμός των συντεταγμένων να σχεδιάσετε την καμπύλη στην αριστερή πλευρά της η καρδιά , και το οικόπεδο με τη λειτουργία Bézier . Τα τελικά σημεία για την αριστερή καμπύλη είναι τα ίδια με εκείνα για το δικαίωμα . Το μόνο πράγμα που αλλάζει είναι οι x - συντεταγμένες για τις κεφαλές φορέα . Οι νέες αυτές πρέπει να είναι όσο στα αριστερά του κέντρου , όπως οι προηγούμενες εκθέσεις ήταν στα δεξιά του κέντρου , ώστε κάθε πλευρά να είναι σαν μια κατοπτρική εικόνα του άλλου . Για παράδειγμα, πληκτρολογήστε :

$ x_coords [ 1 ] = 50 κεφάλι ;//First φορέα ήταν 150

$ x_coords [ 2 ] = -50 ;//Δεύτερο σκέλος του φορέα ήταν 250 . .

bezier ( $ img , $ x_coords , $ y_coords , $ κόκκινο , 500 ) ?
Η 7

Εμφανίζει την εικόνα και να καταστρέψει το αντικείμενο της εικόνας για να ελευθερώσετε τη μνήμη . Η λειτουργία "κεφαλίδα " είναι απαραίτητη, ώστε το πρόγραμμα περιήγησης θα αντιμετωπίσει την έξοδο ως εικόνα . Το αρχείο με το κλείσιμο του tag της PHP . Για παράδειγμα, πληκτρολογήστε :

header ( " Content-type : image /png " ) ?

Imagepng ( $ img ) ?

Imagedestroy ( $ img ) ?

>
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα