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: 324

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 1007 korisnika na forumu :: 40 registrovanih, 8 sakrivenih i 959 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Aleksandar Tomić, babaroga, Ben Roj, bobomicek, bojcistv, Brana01, BraneS, CikaKURE, darkangel, Denaya, FOX, galerija, ILGromovnik, Kibice, krkalon, Kubovac, kybonacci, Leonov, loon123, Lord Nem, Metanoja, mile23, milenko crazy north, Millennium, Milos ZA, Mirage 2000N, moldway, Motocar, Oscar2, Povratak1912, procesor, proka89, stegonosa, suton, Trpe Grozni, vathra, Vlada1389, vukovi, Žoržo, 2001