Ini disebut interpolasi warna . Inilah yang dilakukan gradien di bawah tenda. Anda dapat melakukannya dengan menggunakan berbagai cara dan metode, dan bagaimana hasil interpolasi tergantung pada metode.
Saya biasanya melakukan ini untuk proyek web menggunakan JavaScript sehingga saya dapat mengubah warna secara dinamis, seperti di visualizer musik ini . Implementasi JavaScript yang memiliki metode interpolasi linier yang sangat mudah menggunakan RGB, ditarik dari contoh di atas, adalah sebagai berikut:
// Returns a single rgb color interpolation between given rgb color
// based on the factor given; via https://codepen.io/njmcode/pen/axoyD?editors=0010
function interpolateColor(color1, color2, factor) {
if (arguments.length < 3) {
factor = 0.5;
}
var result = color1.slice();
for (var i = 0; i < 3; i++) {
result[i] = Math.round(result[i] + factor * (color2[i] - color1[i]));
}
return result;
};
// My function to interpolate between two colors completely, returning an array
function interpolateColors(color1, color2, steps) {
var stepFactor = 1 / (steps - 1),
interpolatedColorArray = [];
color1 = color1.match(/\d+/g).map(Number);
color2 = color2.match(/\d+/g).map(Number);
for(var i = 0; i < steps; i++) {
interpolatedColorArray.push(interpolateColor(color1, color2, stepFactor * i));
}
return interpolatedColorArray;
}
Yang digunakan seperti itu dan mengembalikan array warna yang diinterpolasi:
var colorArray = interpolateColors("rgb(94, 79, 162)", "rgb(247, 148, 89)", 5);
Anda juga dapat menemukan ekstensi PhotoShop (dan kemungkinan program lain) untuk melakukan interpolasi warna. Namun, Anda mungkin ingin memeriksa untuk memastikan metode interpolasi adalah sama dengan yang Anda inginkan, karena Anda dapat menggunakan fungsi apa saja untuk interpolasi berdasarkan.