| 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! |
 |

03-08-2010, 19:39
|
|
Adamcos
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 1
|
|
Anhand eines Pixels ein bestimmtes Bild anzeigen...
Guten Tag,
bin ein Frischling hier und hab von PHP ueberhaupt keine Ahnung, aber ein "Problem"...
Ich moechte anhand der Farbe eines Pixels von einem fremden Bild auf meiner Homepage ein Bild einfügen. Ich habe da was im Netz gefunden, was soweit zum bestimmen der Pixelfarbe hervorragend funktioniert:
<?php
$im = imagecreatefromgif("http://www.xxx.yy/fremdbild.gif");
$rgb = imagecolorat($im, 51, 162);
$colors = imagecolorsforindex($im, $rgb);
var_dump($colors);
?>
Im Browser bekomme ich dann z.B. angezeigt:
array(4) { ["red"]=> int(100) ["green"]=> int(180) ["blue"]=> int(255) ["alpha"]=> int(0) }
Soweit bestens, jetzt meine Idee: Anhand des Farbwertes moechte ich ein bestimmtes Bild auf meiner HP anzeigen, das heisst, wenn das Pixel z.B. GELB ist, soll "image01" erscheinen, ist das Pixel BLAU, dann "image02".
Es gibt nur sechs verschiedene Farben, welche in Betracht kommen, also sechs verschiedene Bilder, die zur Anzeige kommen sollen.
Wie gesagt, ich hab absolut Null plan, deswegen frag ich hier in der Hoffnung, jemand kann mir helfen...
Danke schon mal, Adamcos (Marcus)
|

03-08-2010, 19:46
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Adamcos
Es gibt nur sechs verschiedene Farben, welche in Betracht kommen, also sechs verschiedene Bilder, die zur Anzeige kommen sollen.
|
Dann musst du dir als erstes überlegen, wie du die 255^3 möglichen Farbwerte des Pixels auf deine sechs Farben verteilen/zuordnen willst.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

06-08-2010, 13:49
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Zitat:
Zitat von wahsaga
Dann musst du dir als erstes überlegen, wie du die 255^3 möglichen Farbwerte des Pixels auf deine sechs Farben verteilen/zuordnen willst.
|
GIF-Bilder haben eine Palette mit maximal 256 Farben. Wenn nur die ersten 6 Paletteneinträge relevant sind, könnte man damit durchaus etwas basteln, was im Kern auf eine Hash-Tabellen-Abfrage hinausläuft:
PHP-Code:
// imageColorAt() gibt nicht die Farbe
// sondern den Paletten-Index zurück
// für 8-Bit-Bitmaps ist das eine Zahl von 0 bis 255
$pen = imagecolorat($img, $x, $y);
$hash = array (
0 => 'url-oder-pfad/bild1.gif',
1 => 'url-oder-pfad/bild2.jpg',
2 => 'url-oder-pfad/bild3.png',
3 => 'url-oder-pfad/bild4.gif',
4 => 'url-oder-pfad/bild5.jpg',
5 => 'url-oder-pfad/bild6.png',
);
$img_to_load = isset($hash[$pen])
? $hash[$pen] : 'url-oder-pfad/default.gif';
// Bild anzeigen oder whatever ...
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
Geändert von fireweasel (06-08-2010 um 14:09 Uhr)
Grund: typo
|

06-08-2010, 13:52
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Oder imagecolorclosest in Kombination mit der Durchschnittsfarbe deiner 6 Bilder, die kannst du durch (ggf. schrittweises) Verkleinern auf 1 Pixel bestimmen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (06-08-2010 um 13:55 Uhr)
|
|
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
|