Skriptsprachen (PHP, Javascript, etc.) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.

Diskutieren Sie hier über die serverseitige Skriptsprachen PHP und Python und über dynamische Webseitenerstellung mit Javascript und Ajax.


SiTH
Beiträge: 12

PN schreiben
Profil ansehen
User ist offline

Automatisch generierten Pixeln einen link zuordnen

Link zur Antwort auf "Automatisch generierten Pixeln einen link zuordnen" von SiTH SiTH, am Thursday den 24.04.2008 um 17:03:56

Hallo, ich versuche mich gerade daran, einer Linie aus automatisc

generierten pixeln jeweils einen hyperlink zuzuordnen.

Die linie wird eigentlich generiert, aber nur dann, wenn ich den echo befehl rausnehme und ich nur

imagesetpixel($image, $i, 50, $i)

in der for schleife habe

Führe ich es so wie unten aus kriege ich eine Linie mit lauter 1en.

Kann mir jemand helfen, wie ich das lauffähig mache?

Damit nun jeder pixel zu sehen ist und einen hyperlink bekommt?

PS: Ich würde die hyperlinks auch gern inkrementiert um 1 ausgeben lassen, also 1.php, 2.php etc (auch in der for schleife), macht "man" das so?

Beste Grüße

Der Code

 
HTML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
   $width = 500;
   $height = 500;
   $image = imagecreatetruecolor($width, $height);
   
   for ($i=0; $i<=300; ++$i) {
        echo '<a href="url.php">'.imagesetpixel($image, $i, 50, $i).'</a>';
 

  header("Content-type: image/png");
  imagepng($image);
  imagedestroy($image);
  
?>

podthepunk
Beiträge: 76

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Automatisch generierten Pixeln einen link zuordnen" von podthepunk podthepunk, am Thursday den 24.04.2008 um 17:28:48

Hi,


so wie du es versuchst kann es nicht funktionieren, da du eine Grafik ausgibst ( header("Content-type: image/png"); ) und keinen HTML-Quelltext.

Was du machen müsstest ist:

HTML-Quelltext durch folgendes Script ausgeben:

 
PHP
1
2
for ( $i = 0; $i <= 300; ++$i) {
    echo '<a href="url.php"><img src="img.php?bild=' . $i . '"></a>';

src verweist dann auf ein Script welches die Grafiken generiert, etwa so:

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
    $i = $_GET['bild'];
    $width = 500;
    $height = 500;
    $image = imagecreatetruecolor($width, $height);
   
    imagesetpixel($image, $i, 50, $i).'</a>';
 
    header("Content-type: image/png");
    imagepng($image);
    imagedestroy($image);
?>

(Code ist als Denkanstoß und nicht als fertiges Script anzusehen ;) )

mfg
pod


SiTH
Beiträge: 12

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Automatisch generierten Pixeln einen link zuordnen" von SiTH SiTH, am Thursday den 24.04.2008 um 23:14:27

hi, danke für die antwort, ich komme damit nur nicht so richtig klar.

Kann ich nicht header("Content-type: image/png");

einfach weglassen, wenn es die Fehler verursacht?

Wenn ich den Code so "integriere" bekomme ich lauter broken links...die automatische "pixelgenerierung" funktioniert auch nichtmehr.

Ich schreib hier nochmal was ich denn eigentlich vor habe, vllt war es einfach zu blöd formuliert.

Ich will mir eine Linie aus Pixeln generieren lassen, wobei jeder Pixel ein Hyperlink ist

Besten Dank schonmal

Link zur Antwort auf "Automatisch generierten Pixeln einen link zuordnen" von Simon Bethke Simon Bethke, am Thursday den 24.04.2008 um 23:43:50

Du vermischst da zwei Dinge:

  • Die pixelsetzmethoden stammen aus dem Bilderzeichen wie in paint.
    Die Php datei müsste definitiv nen anderen header bekommen. Die GD-lib (ein php-plugin) würde dann statt einer text- bzw. xhtml-datei die binär in UTF-8 o.ä. encodiert ist eine rein binäre bilddatei zB. im jpeg oder gif format generieren. Der Browser kann - soll er die pixel anzeigen - dies nur tun, wenn diese php-datei in ein <img> tag oder als background-image (css) eingebunden ist.
  • Die link-setz methode wiederrum ist reines html. Und kann auch nur komplette bilder mit vielen pixeln verlinken

Du hast praktisch gerade versucht jeden buchstaben (eines herkömmlichen briefes) ohne das dazugehörige papier in einzelne briefumschläge (links) zu stecken :D

Zur lösung deines problems:

Du benötigst mindestens eine html-datei und eine php-bild-datei. Die html-datei bindet die php-bild-datei in einem <img> tag ein. dabei überwacht ein javascript, das über <img onclick=""> aufgerufen wird jegliche klicks auf das bild.

wird so ein klick getriggert, wird die cursorposition auf dem bild ermittelt und ggf. an eine weitere -oder die bild-php-datei übergeben.

lösung 2 (leichter und unelegant):

du nutzt kein bild, sondern absolute positionierte links mit 1px höhe und breite sowie der pixelfarbe als hintergrundfarbe.

PS.:

Wenn du an diesem punkt nun aufgibst, wäre es interessant mal zu erfahren, wie du auf die idee gekommen bist eine solche sache mal eben programmieren zu wollen ^^