Prevodjenje iz RGB u HSB i obratno

Prevodjenje iz RGB u HSB i obratno

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Pozdrav

Da li neko moze da mi objasni kako ide algotiram za prebacivanje iz RGB u HSB i obrnutno, i ako nije problem da da neki primer?

Unapred hvala



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 30 Sep 2005
  • Poruke: 333
  • Gde živiš: Dva prsta od nigde

evo ovde ima sve o tome


[url=http://www.jamesmarch.com/code/HSBtoRGB.html]Izvor[/url]
----------------------------------------------------------------------------
#!/usr/bin/perl

use warnings;
use strict;

# This is a small port I did from a php script I found.
# It worked on the few values I fed it to test it out
# but beware bugs may live here.  Email me if you find
# something, james at jamesmarch.com.

my ($red, $green, $blue) = HSBtoRGB(120,100,100);
print "R: $red G: $green B: $blue\n";

sub HSBtoRGB {
    my ($h, $s, $v) = @_;
    my $rgb = [];
    my @rgb_dec;
    $h = $h/60;
    $s = $s/100;
    $v = $v/100;
    if ($s == 0) {
        $rgb->[0] = $v*255;
        $rgb->[1] = $v*255;
        $rgb->[2] = $v*255;
    } else {
        my $i = int($h);
        my $p = $v * (1 - $s);
        my $q = $v * (1 - $s * ($h - $i));
        my $t = $v * (1 - $s * (1 - ($h - $i)));
        if ($i == 0) {
            $rgb_dec[0] = $v;
            $rgb_dec[1] = $t;
            $rgb_dec[2] = $p;
        } elsif ($i == 1) {
            $rgb_dec[0] = $q;
            $rgb_dec[1] = $v;
            $rgb_dec[2] = $p;
        } elsif ($i == 2) {
            $rgb_dec[0] = $p;
            $rgb_dec[1] = $v;
            $rgb_dec[2] = $t;
        } elsif ($i == 3) {
            $rgb_dec[0] = $p;
            $rgb_dec[1] = $q;
            $rgb_dec[2] = $v;
        } elsif ($i == 4) {
            $rgb_dec[0] = $t;
            $rgb_dec[1] = $p;
            $rgb_dec[2] = $v;
        } elsif ($i == 5) {
            $rgb_dec[0] = $v;
            $rgb_dec[1] = $p;
            $rgb_dec[2] = $q;
        } elsif ($i == 6) {
            $rgb_dec[0] = $v;
            $rgb_dec[1] = $p;
            $rgb_dec[2] = $q;
        }

        $rgb->[0]  = sprintf("%1.0f", $rgb_dec[0] * 255);
        $rgb->[1]  = sprintf("%1.0f", $rgb_dec[1] * 255);
        $rgb->[2]  = sprintf("%1.0f", $rgb_dec[2] * 255);
    }
    return @$rgb;
}



offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Nije mi bas najjasnije kako se radi

Ako moze neko na konkretnom primeru
Recimo Prevesti HSB(195, 50%, 78.125%) u RGB kolor model
Unapred hvala

offline
  • Pridružio: 14 Nov 2003
  • Poruke: 322

Pa najlakše ti je u Photoshop-u.
Klikneš na ona dva kvadrata za boje (Background i Foreground Color) i u dijalogu koji ti se pojavi imaš 4 vrste odabira boja...HSB, RGB, CMYK i WEB colors.
Unesi podatke u HSB colors i pogledaj brojeve koji se pojavljuju u RGB kolonama.

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Smile
Znam za to, ali treba mi postupak kako "rucno" to da uradim Smile
Zbog fakulteta... Wink

Ko je trenutno na forumu
 

Ukupno su 532 korisnika na forumu :: 6 registrovanih, 1 sakriven i 525 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: ALBION101, branko72, Dorcolac, koscicajasmin, shaja1, zlaya011