php und Grafik

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo wer kann helfen?

    ich moechte mir mit php eigene grafik erzeugen, habe aus verschiedenen Beispielen folgenden Code
    mir erzeugtm, aber leider wird nichts angezeigt. Wo könnte der Fehler liegen, muss ich erst noch
    Zusatzmodule zu php auf meinem Pi installieren ?
    Meiner Meinung nach sieht das alles wie in den Beispielen aus.


    <?php
    header("Content-type: image/png");

    $x = 200;
    $y = 50;

    $img = imagecreatetruecolor($x,$y);

    $color = imagecolorallocate($img, 119, 123, 180);
    imagefilledrectangle($img,0,0,$x,$y,$color);
    imagepng($img);
    imagedestroy($img);

    ?>


    danke .

  • ähhhhmmmm
    echo'
    <img src="/pfad/zum/bild" alt="Fehler beim Anzeigen">
    ';

    oder ist das was du meinst nicht auf nem webserver?

    (I) mehr käse = mehr löcher
    (II) mehr löcher = weniger käse
    (I) = (II)
    mehr käse = weniger käse
    :denker:

  • Den Header kannst du über die grafik.php nicht mehr verändern da der vermutlich bereits über die index.html gesetzt wurde :huh:

    Prüf mal dein error Log: /var/log/apache2/error.log


    Ich würd dir aber raten einfach die grafik.php (oder eine function) aufzurufen, eine Bilddatei erzeugen zu lassen und diese dann mit ' <img src=bild.png /> ' einzubinden.. Also zum Beispiel so:

    grafik.php[code=php]<?php
    $x = 200;
    $y = 50;
    $img = imagecreatetruecolor($x,$y);
    $color = imagecolorallocate($img, 119, 123, 180);
    imagefilledrectangle($img,0,0,$x,$y,$color);
    imagepng($img,"bild.png");
    imagedestroy($img);
    ?>[/php]

    index.php:
    [code=php]
    <?php
    include_once("grafik.php");

    echo "<img src='bild.png' />\n";
    ?>
    [/php]

  • Hallo danke erstmal

    habe in das log file gesehen, da sthet

    call toundefined function imagecreatetruecolor() in /var/www/.....

    habe mir die Zeile 5 mal angeshen und keine schreibfehler gesehen.
    Irgendeine Idee ?

    Gruss W.G.

  • http://www.php.net/manual/de/func…tetruecolor.php

    Zitat


    Depending on your PHP and GD versions this function is defined or not. With PHP 4.0.6 through 4.1.x this function always exists if the GD module is loaded, but calling it without GD2 being installed PHP will issue a fatal error and exit. With PHP 4.2.x this behaviour is different in issuing a warning instead of an error. Other versions only define this function, if the correct GD version is installed.

    Code
    apt-get update
    apt-get install php5-gd
  • danke die Seite kenn ich

    von da habe ich mir den code geholt,
    Wenn ich nur das Beispiel so nehme wie du es oben gezeigt hast kommt der Fehler mit dem truecolor.
    Wenn ich aber wie auf der Webseite angegeben die Zeile mit header eingebe, kommt folgen de Fehlermeldung

    Fatal erro: call to undefined function header ...

    habe auch das update geladen wie du angegeben hast.

    Nun was nun ??

    Gruss W.G.

    nur nochmal
    als Zusammenfassung, ich habe den code auf die beiden files index.php und grafik.php reduziert,
    siehe anhang.

    Gruss W.G.

  • huhu, im Anhang sind zwei Dateien, schau Sie dir mal an und vielleicht wirst ja daraus schlau.

    Dieses Script holt sich Informationen von einer Seite und macht daraus ein Bild.

    Beides auf den Pi laden und im Browser aufrufen, danach siehst das Ergebnis.

    EDIT:

    Das Bild muss unter "tetris.png" gespeichert werden. Siehst aber auch im Code.


  • nur nochmal als Zusammenfassung, ich habe den code auf die beiden files index.php und grafik.php reduziert, siehe anhang.

    In der index.php versuchst du eine bild.png einzufügen aber in der grafik.php wird eine bild.gif erzeugt ... Das kann so also nicht wirklich gehn :D

    Desweiteren wird in der grafik.php eine Variable $php_blau aufgerufen die aber nirgends definiert wurde... Das selbe gilt für $x und $y sowie $img

    Du hast da also fatale Fehler drin ... Dazu kommt aber auch das du die grafik.php anscheint mit einem nicht-Linux-kompatiblen Editor erstellt hast und da Sonderzeichen drin sind die Linux nicht versteht - das sieht man wenn man die Datei über Linux und vi oder nano öffnet
    Also wenn dann immer mit einem Linux-Kompatiblen Editor arbeiten, entweder direkt auf Linux oder unter Windows mit zB notepad++ oder Proton oder UltraEdit


    So funktioniert das bei mir (wenn man alles grad erwähnte beachtet):

    index.php
    [code=php]
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors',1);
    include_once("grafik.php");
    ?>
    [/php]

    grafik.php
    [code=php]
    <?php
    header ('Content-Type: image/png');
    $im = @imagecreatetruecolor(120, 20);
    $text_color = imagecolorallocate($im, 233, 14, 91);
    imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
    imagepng($im);
    imagedestroy($im);
    ?>
    [/php]

  • hallo danke fuer deine Hinweis,

    das sind tipfehler die mir durch das permenente hin und herprobieren in dem Fall passiert sind.
    Sie loesen aber nicht das Problem,
    Ich habe deinen Code eins zu eins eingegeben (copy Paste)und bekomme folgende Fehler

    Parse error: syntax error, unexpected '@' in /var/www/devel/pict/grafik.php on line 3

    Ich glaube bei mir ist was prinzipielles mit php falsch, das ist sicher ganz simple nur ich sehe es nicht,
    habe all meine Beispiele die ich probiert habe aus dem web kopiert in bin immer wieder gescheitert.

    wer hat die goldene Idee?

    Gruss W.G

  • Benutzt du copy&past direkt in nano oder wie machst du das? Beschreib das mal bitte so detailiert wie möglich


    Ansonsten reinstallierst du das halt einfach:

    Code
    apt-get remove --purge apache2 php5 php5-gd
    
    
    apt-get install apache2 php5 php5-gd
  • Hallo

    ich arbeite nicht mit nano sondern in der Grafikumgebung mit leafpad.
    Am copy paste kann es nicht liegen habe das ganze auch schon manuell eingegeben.
    Gleiehes Ergebnis, die anderen code beispiele habe ich in php python oder html aehnlich eingegeben
    da gab es keine Probleme mit ill. Zeichen beim copy pasate wie du vielleicht annimmst.

    habe die install auch durch gefuehrt wie angegeben.

    Werde wohl das Ganze erstmal auf Eis legen und spaeter weiter machen,
    Vielleicht kommt noch der goldene Einfall.

    Danke vorerst an alle

    gruss W.G.

  • Nunja, in der von dir im Beitrag #8 angehängten grafik.php sind definitiv Sonderzeichen enthalten die aber Fehler verursachen - also ausdenken oder annehmen tue ich das nicht, sondern das ist Fakt:

    PHP
    <?php
    headerÂ| ("Content-Type:Â| image/gif");
    $imÂ| =Â| imagecreatetruecolor(120,Â| 20);
    $text_colorÂ| =Â| imagecolorallocate($im,Â| 233,Â| 14,Â| 91);
    imagefilledrectangle($img,0,0,$x,$y,$php_blau);
    imagegif($im,"bild.gif");
    imagedestroy($im);
    ?>


    Deshalb machst du das mal bitte wie folgt:

    - Mit PuTTY eine SSH Verbindung herstellen
    - Ins verzeichnis /var/www/ wechseln: cd /var/www/
    - Mit nano die Dateien nacheinander öffnen: nano index.php grafik.php
    - Den Code oben aus dem Beitrag #10 markieren (nicht 'Alles markieren' !), rechte Maustaste und Kopieren.
    - Das PuTTY Fenster auswählen und die rechte Maustaste drücken.
    - Anschließend nano beenden und speichern, durch die Tastenkombination: STRG + x danach die Taste y und dann ENTER drücken

  • Also folgendes

    habe alles nocheinmal mit nano manuell (ohne jegliches copy paste)
    eingegeben geht trotzdem nicht.

    dann habe ich folgende radikle variante gemacht:
    1.

    PHP
    <?php
    echo "1";
    //header ('Content-Type: image/png');
    echo "2";
    ?>

    jetzt bekomme ich als ausgabe

    12

    danach den kommentar entfernt

    PHP
    <?php
    echo "1";
    header ('Content-Type: image/png');
    echo "2";
    ?>


    nichts, nur auf den Bildschirm ein kleines Grafiksymbol einer umgeblaetterten Seiten

    sagt dir das etwas.
    Wenn nicht hoeren wir auf, ich will dir nicht deinen ganzen Abend versauen.


    Gruss W.G.

  • Jungs ich danke euch :thumbs1:

    es geht, schwere Geburt, war noch in image ein tippfehler.
    Ist php hier wirklich so restrkitiv in der Syntax.
    wo steht das habe ich bis jetzt noch nicht gefunden.

    Also allen beteiligten danke und vile Spass mit euerem Pi.
    Hatte schon die Hoffnung aufgegeben.


    Gruss W.G.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!