Λύθηκε: javascript hex σε rgb

Το κύριο πρόβλημα με τη μετατροπή δεκαεξαδικών τιμών χρώματος σε RGB είναι ότι δεν υπάρχει αντιστοιχία ένα προς ένα μεταξύ των δύο μορφών. Για παράδειγμα, το χρώμα #FF0000 αντιπροσωπεύεται σε RGB ως 255, 0, 0, αλλά στο εξάγωνο θα ήταν ίσο με το χρώμα #F0. Αυτό σημαίνει ότι δύο διαφορετικά χρώματα μπορούν να έχουν την ίδια τιμή RGB εάν αποτελούνται από διαφορετικές ποσότητες κάθε στοιχείου χρώματος.

"use strict";

function hexToRgb(hex) {
    var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
    return result ? {
        r: parseInt(result[1], 16),
        g: parseInt(result[2], 16),
        b: parseInt(result[3], 16)
    } : null;
}

"χρησιμοποιήστε αυστηρά"

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

συνάρτηση hexToRgb(hex) {
var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
αποτέλεσμα επιστροφής; {
r: parseInt(αποτέλεσμα[1], 16),
g: parseInt(αποτέλεσμα[2], 16),
β: parseInt(αποτέλεσμα[3], 16)
} : μηδενικό;
}

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

Μετατροπή μεταξύ χρωμάτων

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

Για να μετατρέψετε ένα χρώμα από έναν χρωματικό χώρο σε έναν άλλο, μπορείτε να χρησιμοποιήσετε τις συναρτήσεις rgb() και hsl(). Αυτές οι συναρτήσεις λαμβάνουν τρία ορίσματα: μια κόκκινη, πράσινη και μπλε τιμή, αντίστοιχα. Το πρώτο όρισμα καθορίζει τον βασικό χρωματικό χώρο (π.χ. RGB), ενώ το δεύτερο και το τρίτο όρισμα καθορίζουν τον χρωματικό χώρο προορισμού (π.χ. HSL).

Για να μετατρέψετε ένα χρώμα από μια μορφή pixel σε μια άλλη, μπορείτε να χρησιμοποιήσετε τη συνάρτηση css(). Αυτή η συνάρτηση περιλαμβάνει δύο ορίσματα: μια συμβολοσειρά που αντιπροσωπεύει το όνομα της ιδιότητας CSS (π.χ. "color") και έναν αριθμό που αντιπροσωπεύει την επιθυμητή τιμή για αυτήν την ιδιότητα (π.χ. "50").

Μορφές χρώματος

Υπάρχουν μερικές διαφορετικές μορφές χρωμάτων που μπορείτε να χρησιμοποιήσετε στο JavaScript.

RGB – Κόκκινο, Πράσινο, Μπλε

HEX – #RRGGBB

HSL – Απόχρωση, Κορεσμός, Ελαφρότητα

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο