Hej...
Er der nogen af jer kloge hoveder, som ved hvordan jeg kan få lavet det farve "format", som bruges i The Gimp & Photoshop om til Hex/RGB?
I The Gimp står der T, M & V ude foran felterne
- Mads
Fandt selv ud af det ved at kigge lidt på hvordan RGB ændrede sig, når man ændrede i t, m & v
Jeg har lavet følgende kode:
function tmv2rgb(t, m, v) {
// Initialize variables
var red = 0;
var green = 0;
var blue = 0;
// T Can't be any higher than 360 or lower than 0
if(t > 360) t = 360; if(t < 0) t = 0;
// M & V Can't be any higher than 100 or lower than 0
if(m > 100) m = 100; if(m < 0) m = 0;
if(v > 100) v = 100; if(v < 0) v = 0;
// Convert T into rgb color stage
if(t <= 60) {
red = 255;
green = Math.round(t * 4.25);
} else if(t > 60 && t <= 120) {
green = 255;
red = 255 - Math.round((t - 60) * 4.25);
} else if(t > 120 && t <= 180) {
green = 255;
blue = Math.round((t - 120) * 4.25);
} else if(t > 180 && t <= 240) {
blue = 255;
green = 255 - Math.round((t - 180) * 4.25);
} else if(t > 240 && t <= 300) {
blue = 255;
red = Math.round((t - 240) * 4.25);
} else if(t > 300 && t <= 360) {
red = 255;
blue = 255 - Math.round((t - 300) * 4.25);
}
// Convert m into rgb color
red = Math.round(red + ((255 - red) * (100 - m) / 100));
green = Math.round(green + ((255 - green) * (100 - m) / 100));
blue = Math.round(blue + ((255 - blue) * (100 - m) / 100));
// Convert t into rgb color
red = Math.round(red - (red * (100 - v) / 100));
green = Math.round(green - (green * (100 - v) / 100));
blue = Math.round(blue - (blue * (100 - v) / 100));
alert("Result of T = '" + t + "', M = '" + m + "', V = '" + v + "' in RGB = " + red + ", " + green + ", " + blue);
}
- Mads
[Redigeret d. 27/04-05 20:16:15 af Mads]