Farbtabelle per CGI-Funktion erstellen
Peter
- cgi
0 oesi500 Matti Maekitalo0 Peter
Hallo, kann mir vielleicht jemand bei Folgendem helfen:
Ich möchte mittels einer CGI-Funktion so viele eingefärbte SPAN´s erstellen wie es Farben gibt.
Das erste SPAN soll also schwarz (#000000) und das letzte weiß (#FFFFFF) eingefärbt sein oder umgekehrt. Dazwischen sollen die ganzen anderen Farben liegen. Diese SPAN´s sollen dann einfach hintereinander weg geschrieben werden (print "...").
Danke schon mal.
Hi,
Das erste SPAN soll also schwarz (#000000) und das letzte weiß (#FFFFFF) eingefärbt sein oder umgekehrt. Dazwischen sollen die ganzen anderen Farben liegen. Diese SPAN´s sollen dann einfach hintereinander weg geschrieben werden (print "...").
Rechne mal bitte nach wieviel Byte da produziert werden.
Ich schätze so ca. 16777216 * 20 ==> 320 MByte
oesi
use Mosche;
Ich schätze so ca. 16777216 * 20 ==> 320 MByte
Mein Code (der jetzt auch nicht unbedingt perfekt ist, weil er die Farbengebung über style="background-color:rgb ... erledigt (73 Zeichen) eribt bei mir ungeführ 1 Gb Daten (1003 MB um genau zu sein). Das würde ich nicht über HTTP schicken :-).
use Tschoe qw(Matti);
Hi Matti,
Mein Code (der jetzt auch nicht unbedingt perfekt
ist, weil er die Farbengebung über
style="background-color:rgb ... erledigt
(73 Zeichen) eribt bei mir ungeführ 1 Gb Daten
(1003 MB um genau zu sein).
Das würde ich nicht über HTTP schicken :-).
aber es ließe sich phantastisch gzip-komprimieren ...
Das Problem wäre wohl auch der Browser, der beim
Rendern die Grätsche machen würde.
Viele Grüße
Michael
use Mosche;
Ich möchte mittels einer CGI-Funktion so viele eingefärbte SPAN´s erstellen wie es Farben gibt.
Das erste SPAN soll also schwarz (#000000) und das letzte weiß (#FFFFFF) eingefärbt sein oder umgekehrt. Dazwischen sollen die ganzen anderen Farben liegen. Diese SPAN´s sollen dann einfach hintereinander weg geschrieben werden (print "...").
for (my $r = 0; $r <= 255; $r++) {
for (my $g = 0; $g <= 255; $g++) {
for (my $b = 0; $b <= 255; $b++) {
print "<span style='background-color:rgb($r,$g,$b);'> \ </span>";
}
}
}
Das ergibt tatsächlich eine riesengrosse Datenmenge.
use Tschoe qw(Matti);
Ich habe das mal mit dem javascript getestet, da
ist bei mir der Browser abgestürzt.
<script>
for (r = 0; r <= 255; r++) {
for (g = 0; g <= 255; g++) {
for (b = 0; b <= 255; b++) {
document.write('<div style="background-color:rgb('+r+','+g+','+b+');"> </div>');
}
}
}
</script>
Das geht bestimmt erst ab 1GB RAM gut.
hallo,
for (my $r = 0; $r <= 255; $r++) {
for (my $g = 0; $g <= 255; $g++) {
for (my $b = 0; $b <= 255; $b++) {
mach doch statt:
$r++ $r=$r+16
$g++ $g=$g+16
$b++ $b=$b+16
dann sind es nur noch 4096 verschiedene Farben.
das ergibt dann ca. 280 KByte.
oesi
DANKE euch beiden erstmal herzlich.
Aber ich sehe jetzt auch ein, dass meine Idee wohl nicht so gut war, alle möglichen Farben schreiben zu lassen. Die meisten unterscheiden sich ja sogar je nach Grafikkarte nur sehr sehr wenig bis gar nicht.
Aber es muss doch irgendwie möglich sein, die wichtigsten Farben (ich denke da so bis an die 50) automatisch und nicht manuell auflisten zu lassen!?
Fällt euch da was ein?
Tschau,
Peter
use Mosche;
Aber es muss doch irgendwie möglich sein, die wichtigsten Farben (ich denke da so bis an die 50) automatisch und nicht manuell auflisten zu lassen!?
Guck mal unter http://selfhtml.teamone.de/helferlein/farben.htm. Da sind 48 Farben aufgelistet. Vielleicht findest du heraus, nach welchem Schlüssel die Farben aufgelistet sind und kannst dementsprechend die for Schleifen anpassen.
use Tschoe qw(Matti);
use Mosche;
Aber es muss doch irgendwie möglich sein, die wichtigsten Farben (ich denke da so bis an die 50) automatisch und nicht manuell auflisten zu lassen!?
Guck mal unter http://selfhtml.teamone.de/helferlein/farben.htm. Da sind 48 Farben aufgelistet. Vielleicht findest du heraus, nach welchem Schlüssel die Farben aufgelistet sind und kannst dementsprechend die for Schleifen anpassen.
use Tschoe qw(Matti);
Moin Moin !
Warum nicht einfach copy-and-paste aus der SelfHTML-Seite ? Ich denke, da hat keiner was gegen.
Oder so:
my @colors=qw(
000000 0000FF 00FFFF FF0000
CCCCCC FFFFFF
);
foreach my $color (@colors) {
print qq[<span style="background-color:#$color">blabla</span>];
}
Alexander
use Mosche;
Aber es muss doch irgendwie möglich sein, die wichtigsten Farben (ich denke da so bis an die 50) automatisch und nicht manuell auflisten zu lassen!?
Warum nicht einfach copy-and-paste aus der SelfHTML-Seite ? Ich denke, da hat keiner was gegen.
Weil er die Farben nicht "manuell auflisten wollte".
use Tschoe qw(Matti);
Ich danke euch!!!
Ich habe jetzt eine mich zufriedenstellende Lösung gefunden:
<script>
i = 0;
for (r = 0; r <= 255; r=r+85)
{
for (g = 0; g <= 255; g=g+85)
{
for (b = 0; b <= 255; b=b+85)
{
document.write('<span style="background-color: rgb('+r+','+g+','+b+'); width: 20px; height: 20px"> </span> ');
i++;
if (i == 13)
{
document.write('<br><br>');
i = 0;
}
}
}
}
</script>
Hi Peter,
for (r = 0; r <= 255; r=r+85)
ich würde Dir vorschlagen, das Inkrement von 85 auf 51 zu ändern.
Das ergibt dann 6^3=216 Farben, die klassischen "websicheren" Netscape-Farben, die auf einem Rechner mit 256 Farben ziemlich zuverlässig dargestellt werden können.
Viele Grüße
Michael