30 Cze 2019

RGB na HEX

Oczywiście poprzednio było HEX na RGB to oczywiście logiczne jest aby też podać i konwersję w drugą stronę 😉

function rgbToHex(rgb) {
  let hex = Number(rgb).toString(16);
  if(hex.length < 2) {
    hex = '0' + hex;
  }
  return hex;
}

function colorHex(r,g,b) {
  return rgbToHex(r) + rgbToHex(g) + rgbToHex(b);
}

A wywołanie to zwyczajne przekazanie funkcji trzech liczb na które składa się kolot rgb(0, 161, 255).

console.log(colorHex(0, 161,255)); 
// => w wyniku otrzymujemy #00a1ff
25 Cze 2019

HEX na RGB

Teraz coś małego ale jakże przydatnego. Konwersja HEX koloru np. #00a1ff na RGB.

function hexTorgb(fullhex) {
  const hex = fullhex.substring(1,7);
  return {
    R: parseInt(hex.substring(0,2), 16),
    G: parseInt(hex.substring(2,4), 16),
    B: parseInt(hex.substring(4,6), 16)
  }
}

A wywołanie to zwyczajne przekazanie stringa do funkcji.

console.log(hexTorgb('#00a1ff')); 
// => {R: 0, G: 161, B: 255 } w wyniku mamy obiekt

Oczywiście nic nie stoi na przeszkodzie aby modyfikować tą funkcję.

18 Cze 2009

Konwersja współrzędnych geograficznych

HTML:
<TR>
 <TD>lng<br>
 <input name="lng_1" id="geo_lng_1" value="17" size="4" maxlength="2">°
 <input name="lng_2" id="geo_lng_2" value="06">'
 <input name="lng_3" id="geo_lng_3" value="20">
 <input name="lng_4" id="geo_lng_4" value="E">
 <TD>lat<br>
 <input name="lat_1" id="geo_lat_1" value="51">°
 <input name="lat_2" id="geo_lat_2" value="03">'
 <input name="lat_3" id="geo_lat_3" value="17">
 <input name="lat_4" id="geo_lat_4" value="N">
 <INPUT TYPE="button" name="dalej" value="Convert" onclick="btn_convert()">
</TR>
<TR>
 <TD>X<br><input name="X" id="geo_X"></TD>
 <TD>Y<br><input name="Y" id="geo_Y"></TD>
</TR>

JS:
function getE(id) {
 return document.getElementById(id);
};

function btn_convert() {
 var lng_1 = parseInt(getE("geo_lng_1").value);
 var lng_2 = parseInt(getE("geo_lng_2").value);
 var lng_3 = parseInt(getE("geo_lng_3").value);
 var lng_4 = getE("geo_lng_4").value;
 var lat_1 = parseInt(getE("geo_lat_1").value);
 var lat_2 = parseInt(getE("geo_lat_2").value);
 var lat_3 = parseInt(getE("geo_lat_3").value);
 var lat_4 = getE("geo_lat_4").value;

 var lng_lat = convert(lng_1, lng_2, lng_3, lng_4, lat_1, lat_2, lat_3, lat_4);

 getE("geo_X").value = lng_lat.lng;
 getE("geo_Y").value = lng_lat.lat;
}

function convert(lng_1, lng_2, lng_3, lng_4, lat_1, lat_2, lat_3, lat_4) {

 if (isNaN(lng_1)) lng_1 = 0;
 if (isNaN(lng_2)) lng_2 = 0;
 if (isNaN(lng_3)) lng_3 = 0;
 if (isNaN(lat_1)) lat_1 = 0;
 if (isNaN(lat_2)) lat_2 = 0;
 if (isNaN(lat_3)) lat_3 = 0;

 var lng = parseInt(lng_1);
  lng += eval(parseInt(lng_2)/60);
  lng += eval(parseInt(lng_3)/3600);
 var lat = parseInt(lat_1);
  lat += eval(parseInt(lat_2)/60);
  lat += eval(parseInt(lat_3)/3600);

 if(lng_4=='S') lnt = lng * -1;
 if(lat_4=='W') lat = lat * -1;

 return {lng:lng,lat:lat};
}

11 Maj 2009

konwersja utf8 na katakana

sub UTF8toKatakana
# convert utf8 to katakana
{
my ( $stri ) = @_;

$stri =~ s/\xC4\x85/a/g;    # ą
$stri =~ s/\xC4\x84/A/g;    # Ą
$stri =~ s/\xC4\x87/c/g;    # ć
$stri =~ s/\xC4\x86/C/g;    # Ć
$stri =~ s/\xC4\x99/e/g;    # ę
$stri =~ s/\xC4\x98/E/g;    # Ę
$stri =~ s/\xC5\x82/l/g;    # ł
$stri =~ s/\xC5\x81/L/g;    # Ł
$stri =~ s/\xC3\xB3/o/g;    # ó
$stri =~ s/\xC3\x93/O/g;    # Ó
$stri =~ s/\xC5\x9B/s/g;    # ś
$stri =~ s/\xC5\x9A/S/g;    # Ś
$stri =~ s/\xC5\xBC/z/g;    # ż
$stri =~ s/\xC5\xBB/Z/g;    # Ż
$stri =~ s/\xC5\xBA/z/g;    # ź
$stri =~ s/\xC5\xB9/Z/g;    # Ź
$stri =~ s/\xc5\x84/n/g;    # ń
$stri =~ s/\xc5\x83/N/g;    # Ń

return $stri;
}
&UTF8toKatakana($calosc);