title image


Smiley Re: RGB hell/dunkel berechnen
ein kleiner fehler iss da schon:

wenn du den ton um 10% 'dunkler' also weniger intensiv machen willst schreibst :



neuer_ton = aktueller_ton -(0.1 * 255)



hab dir hier mal ein kleines beispiel script geschrieben, es hilft dir hoffentlich ein wenig.



#!c:/Perl/bin/perl -w

use strict;

use CGI::Carp qw(fatalsToBrowser);



print "Content-type: text/html\n\n";



my $inWert="FF00FF";



my $value=extractRed($inWert);

$value=modifybypercent($value,-10);



print "Rotwert um 10% (auf $value) verringern: $inWert -> ".replaceRed($inWert,$value)."<br>";



my $value=extractGreen($inWert);

$value=modifybypercent($value,10);



print "Grünwert um 10% (auf $value) erhöhen: $inWert -> ".replaceGreen($inWert,$value)."<br>";



my $value=extractBlue($inWert);

$value=modifybypercent($value,-20);



print "Blauwert um 20% (auf $value) verringern: $inWert -> ".replaceBlue($inWert,$value)."<br>";



exit(0);



sub extractRed{

my $localIn=shift;

my $localValue=substr($localIn,0,2);

return hex($localValue);

}



sub extractGreen{

my $localIn=shift;

my $localValue=substr($localIn,2,2);

return hex($localValue);

}



sub extractBlue{

my $localIn=shift;

my $localValue=substr($localIn,4,2);

return hex($localValue);

}



sub replaceRed{

my $localIn=shift;

my $localValue=shift;

return uc(sprintf( "%02x", $localValue ).substr($localIn,2,4));

}



sub replaceGreen{

my $localIn=shift;

my $localValue=shift;

return uc(substr($localIn,0,2).sprintf( "%02x", $localValue ).substr($localIn,4,2));

}



sub replaceBlue{

my $localIn=shift;

my $localValue=shift;

return uc(substr($localIn,0,4).sprintf( "%02x", $localValue ));

}



sub modifybypercent{

my $localValue=shift;

my $localPercent=shift;

$localPercent=$localPercent/100;

$localValue=int($localValue + ($localPercent * 255));

if($localValue<0){$localValue=0;}

if($localValue>255){$localValue=255;}

return $localValue;

}





es müssten nicht alle funktionen in subs verpackt werden, habs nur der übersichtlichkeit halber gemacht... ob das jetzt gut programmiert ist... naja das lass ma mal so in raum gestellt..



die ausgabe wäre folgende:



Rotwert um 10% (auf 229) verringern: FF00FF -> E500FFGrünwert um 10% (auf 25) erhöhen: FF00FF -> FF19FFBlauwert um 20% (auf 204) verringern: FF00FF -> FF00CC
>meine posts sind manchmal sehr impulsiv, sorry ;) rechtschreibfehler bitte ich zu entschuldigen ;) gruß!<


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: