PDA

Просмотр полной версии : [PHP] hex -> int -> hex


imajo.ati
14.07.2009, 14:55
функция


function int_to_rgb( $i )
{
return sprintf('#%02X%02X%02X', $i&0xFF , ($i>>8)&0xFF , ($i>>16)&0xFF );
}


переводит идентификатор цвета в hex

как перевести обратно? к примеру #808000

вот написал функцию


function rgb_to_int( $i ) // xxxxxx
{
$ret = hexdec($i[0].$i[1]);
$tmp = hexdec($i[2].$i[3]); if ( $tmp != 0 ) $ret *= $tmp;
$tmp = hexdec($i[4].$i[5]); if ( $tmp != 0 ) $ret *= $tmp;
return $ret;
}


но она неправильно переводит некоторые цвета: допустим красный цвет FF0000 переводит правильно, а цвет 800080 нет

не могу найти нигде

imajo.ati
14.07.2009, 15:12
всё, нашёл формулу
256*256*blue+256*green+red

блин, рано тему создал =)