Anhand eines Pixels ein bestimmtes Bild anzeigen...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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)

  • #2
    Zitat von Adamcos Beitrag anzeigen
    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.

    Kommentar


    • #3
      Zitat von wahsaga Beitrag anzeigen
      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 (
          
      => 'url-oder-pfad/bild1.gif',
          
      => 'url-oder-pfad/bild2.jpg',
          
      => 'url-oder-pfad/bild3.png',
          
      => 'url-oder-pfad/bild4.gif',
          
      => 'url-oder-pfad/bild5.jpg',
          
      => 'url-oder-pfad/bild6.png',
      );
      $img_to_load = isset($hash[$pen]) 
          ? 
      $hash[$pen] : 'url-oder-pfad/default.gif';
      // Bild anzeigen oder whatever ... 
      Zuletzt geändert von fireweasel; 06.08.2010, 14:09. Grund: typo
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar


      • #4
        Oder imagecolorclosest in Kombination mit der Durchschnittsfarbe deiner 6 Bilder, die kannst du durch (ggf. schrittweises) Verkleinern auf 1 Pixel bestimmen.
        Zuletzt geändert von AmicaNoctis; 06.08.2010, 13:55.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar

        Lädt...
        X