| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

02-10-2009, 18:47
|
|
someRookie
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 50
|
|
ey klasse !
die erklärung für index liest sich absolut verständlich, sollte mal irgendwo festgehalten werden, nich nur in meinem thread hier !
ich sehe beim exportieren auch immer so eine tabelle, aller im gif enthaltenen farben.. das wird dann wohl der gesamte index sein...
so färbt man dann sicher auch gifs nach "farbtönen" um, wenn ich das gleich mal weiterdenken kann ?
und alphakanal speichert transparenz direkt als farbton und nicht als index in einer tabelle ?
|

02-10-2009, 19:01
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von someRookie
so färbt man dann sicher auch gifs nach "farbtönen" um, wenn ich das gleich mal weiterdenken kann ?
|
Richtig, wenn du einen Farbwert in der Palette änderst, ändern sich dann alle Punkte, die im Bild auf diesen Index referenzieren.
Zitat:
|
und alphakanal speichert transparenz direkt als farbton und nicht als index in einer tabelle ?
|
GIF kann nur einfache Transparenz, voll durchsichtig oder voll undurchsichtig.
Alphatransparenz hingegen geht von 0 (ganz durchsichtig) bis 255 (komplett undurchsichtig), stufenweise. Und ist auch nicht an Farbwerte in irgendeinem Index gebunden, sondern wird für jeden Bildpunkt separat abgelegt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

02-10-2009, 19:34
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von wahsaga
Alphatransparenz hingegen geht von 0 (ganz durchsichtig) bis 255 (komplett undurchsichtig), stufenweise.
|
Auch wenn das im Allgemeinen für den Alphakanal so zutrifft, im Umgang mit den GD2-Funktionen in PHP muss man etwas umdenken: GD2 speichert tatsächlich die Transparenz und nicht die Opazität (Alphakanal) und das aber nur mit 7bit. Dadurch ist 0 in PHP opak und 127 ist transparent.
|

02-10-2009, 20:04
|
|
someRookie
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 50
|
|
man man
da denkt man farbe ist farbe... und wird überrascht von einer tiefen materie bei der es erstmal heisst.... wisse und lerne
ich werd mir das hier mal ausrucken und ein paar mal lesen, damit das auch tiefer hängen bleibt !
danke jedenfalls für diese wertvolle exkursion in farbe und php
|

05-10-2009, 10:45
|
|
someRookie
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 50
|
|
Zitat:
Zitat von AmicaNoctis
...
imagecolorat liefert für indizierte Bilder nicht die Farbe zurück, sondern den Index. Den musst du nur mit $transIndex vergleichen.
|
Hallo,
ich hab nun mit imagecolortransprent() den index ermittelt, dieser ist in dem Bild 255.
Das scipt läuft wie gewünscht, und zählt nun die Transparenten Pixel die sich in einem GIF befinden.
.
Dafür wollte ich Danke sagen!
Hier der kleine Code-Schnipsel, falls mal jemand nach ähnlichem sucht!
PHP-Code:
$transparentPixel = 0; $coloredPixel = 0; $img = imagecreatefromgif ( 'images/pic.gif' ); $transIndex = imagecolortransparent($img);// Ermittelt Index für Transparenz $w = imagesx($img); $h = imagesy($img);
for ($y = 0; $y < $h; ++$y) { for ($x = 0; $x < $w; ++$x) { $argb = imagecolorat($img, $x, $y); ($argb==$transIndex) ? $transparentPixel++:$coloredPixel++;// Vergleich Index jedes Pixel mit $transIndex } } echo "Alle Pixel: ".($transparentPixel+$coloredPixel)."<br>"; echo "Transparent Index: ".$transIndex."<br>"; echo "Transparente Pixel: ".$transparentPixel."<br>"; echo "Farbige Pixel: ".$coloredPixel."<br>";
|

05-10-2009, 10:52
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
darf ich dir noch einen Tipp mit auf den Weg geben? Wenn du diese Variable $argb nennst, wirst du ab in 4 Wochen denken, dass es wirklich eine TrueColor-Farbe mit Alphakanal ist, die dort zurück kommt. Bei GIF ist es aber wie gesagt nur der Index auf die Farbpalette, also wäre $index oder $idx der bessere Variablenname.
Gruß,
Amica
|

05-10-2009, 11:03
|
|
someRookie
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 50
|
|
Zitat:
Zitat von AmicaNoctis
Hallo,
darf ich dir noch einen Tipp mit auf den Weg geben? Wenn du diese Variable $argb nennst, wirst du ab in 4 Wochen denken, dass es wirklich eine TrueColor-Farbe mit Alphakanal ist, die dort zurück kommt. Bei GIF ist es aber wie gesagt nur der Index auf die Farbpalette, also wäre $index oder $idx der bessere Variablenname.
Gruß,
Amica
|
Na klar !!! Dankeschön... das ist recht warscheinlich, wenn ich mich mehr damit beschäftige und nach ein para wochen da mal reinschaue
ich werds gleich umbennen !
Vielen Dank nochmals !
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|