Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit imageCreate()

Einklappen

Neue Werbung 2019

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

  • alisa
    hat ein Thema erstellt Probleme mit imageCreate().

    Probleme mit imageCreate()

    hallo Leute,

    ich wollte mich mal an den funktionen rund um imageCreate() probieren...

    aber irgendwie will es nicht so wie ich

    PHP-Code:
    <?php

    session_start
    ();

    $bild $_SESSION['image'];

    $image imageCreateFromJPEG('$bild');

    if (!
    $image)
        {
        
    $image imagecreatetruecolor(400,300);
        
    $bg imageColorAllocate($image,51,102,153);
        }

    header('Content-Type: image/jpg');    
    imageJPEG($image);
    imageDestroy($image);


    ?>
    und hier ist mein fehler:
    • Warning: imagecreatefromjpeg($bild): failed to open stream: No such file or directory in e:\php\test\bild.php on line 6

      Warning: Cannot modify header information - headers already sent by (output started at e:\php\test\bild.php:6) in e:\php\test\bild.php on line 14
      ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!222222222222222222222222222222222222222222222 22222ÿÀ,"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3 br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ× ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvw xyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓ ÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ùþŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š ....


    könnt ihr mir einen tip geben...

    ich komm da momentan nicht weiter....


    danke alisa

  • alisa
    antwortet
    hab mein problem gelöst!!! :P

    der script in bild.php war falsch

    hier ist der richtige (komplette bild.php)

    PHP-Code:
    <?php
    header
    ("Content-Type: image/jpg");

    $bild $HTTP_GET_VARS['image'];
    $nummer $bild+1;

        
    $image = @imageCreateFromJPEG("$bild.jpg");                                // gewähltes Bild

    if (!$image)
        {
        
    $width 500;
        
    $height 375;

        
    $image imageCreateTrueColor($width$height);                        // alternatives Bild mit Größe $width x $height
        
    $bg imageColorAllocate($image81119243);                        // Hintergrundfarbe definieren
        
    ImageFill($image00$bg);                                        // alternatives Bild mit Farbe füllen
        
    }




           
    $font 5;                                                            // Schriftgröße
        
    $intext 'Bildnummer = ' $nummer ' (C) by HUNZ UND KUNZ';                                        // Text

        
    $text_color imageColorAllocate($image34792);                // Textfarbe definieren

        
    $str_x = (imagesx($image) - (imageFontWidth($font) * strLen($intext))) / 2;    // Text horizontal mittig
        
    $str_y = (imagesy($image) - imageFontHeight($font) - 5);                    // Text vertikal unten

        
    imageString($image$font$str_x$str_y$intext$text_color);    // Text positionieren und einfügen



    imageJPEG($image);
    imageDestroy($image);

    ?>
    genauer gesagt folgende zeilen:

    PHP-Code:
    <?php
       $str_x 
    = ($width - (imageFontWidth($font) * strLen($intext))) / 2;   // Text horizontal mittig 
       
    $str_y = ($height imageFontHeight($font) - 5);               // Text vertikal unten 

    ?>
    muß lauten:

    PHP-Code:
    <?php
    $str_x 
    = (imagesx($image) - (imageFontWidth($font) * strLen($intext))) / 2;    // Text horizontal mittig
        
    $str_y = (imagesy($image) - imageFontHeight($font) - 5);                    // Text vertikal unten

    ?>
    oh man, bin zufrieden

    Einen Kommentar schreiben:


  • alisa
    antwortet
    also der script von bild.php funktioniert schonmal. ich hab jetzt mal die anweisung vom if-block mit der anweisung von else vertauscht. -> soll bedeuten php soll das alternativ-bild zeigen wenn $bild einen wert enthält.

    $bild wird auch defenitiv korrekt übergeben, denn $bild ist im einzufügenden text enthalten.

    habt ihr denn ne' idee was da verkehrt läuft??

    also ich bin jetzt echt am verzweifeln ...

    alisa

    Einen Kommentar schreiben:


  • alisa
    antwortet
    meine probleme hören einfach nicht auf:

    jetzt wollte ich das ganze mal mit dem richtigen bild (3.jpg) testen, aber der zeigt mir nur den platzhalter für's bild an.

    hier mal die bild.php:

    PHP-Code:
    <?php
    header
    ("Content-Type: image/jpg");

    $bild $HTTP_GET_VARS['image'];


    if (!
    $bild)
        {

        
    $width 500;
        
    $height 375;

        
    $image imageCreateTrueColor($width$height);                        // alternatives Bild mit Größe $width x $height
        
    $bg imageColorAllocate($image81119243);                        // Hintergrundfarbe definieren

        
    }

    else
        {
        
    $image imageCreateFromJPEG($bild'.jpg');                                // gewähltes Bild

        
    $groesse getimagesize("$image");
        
    $width $groesse[0];                                                // $width ermitteln
        
    $height $groesse[1];                                                // $height ermitteln
        
    }


           
    $font 5;                                                            // Schriftgröße
        
    $intext 'Bildnummer = ' $bild ' (C) by HUNZ UND KUNZ';                                        // Text

        
    $text_color imageColorAllocate($image34792);                // Textfarbe definieren

        
    $str_x = ($width - (imageFontWidth($font) * strLen($intext))) / 2;    // Text horizontal mittig
        
    $str_y = ($height imageFontHeight($font) - 5);                    // Text vertikal unten

    if (!$bild)
        {
        
    ImageFill($image00$bg);                                        // Bild mit Farbe füllen
        
    }

        
    imageString($image$font$str_x$str_y$intext$text_color);    // Text positionieren und einfügen



    imageJPEG($image);
    imageDestroy($image);

    ?>

    aufgerufen wird das ganze von einer simplen (nur zu testzwecken) bildaufruf.php:

    PHP-Code:


    <html>
    <head>
    </head>
    <body>
    <?php
    print ("[img]bild.php?image=3.jpg[/img]");
    ?>
    </body>
    </html>
    alle drei dateien (2x PHP + 1x bild (3.jpg)) liegen im gleichen verzeichnis

    ich bin ja der meinung das da bei imageCreateFromJPEG(...); irgendwas nicht passt.

    könnt ihr mir einen tip geben??

    alisa

    Einen Kommentar schreiben:


  • alisa
    antwortet
    @cix88

    vielen dank für deine hilfe. jetzt funktioniert es wunderbar. da kann ich ja gleich weiter basteln!! ich werde wohl auch deinen rat mit dem if-block befolgen...



    alisa

    Einen Kommentar schreiben:


  • alisa
    antwortet
    achso!!

    na dann sollte ja alles klar sein!

    das werd' ich doch heut abend gleich mal testen!

    danke für die hilfe!!

    alisa

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Achso,
    also mal ganz langsam:

    allerdings bekomme ich immer nur ein schwarzes bild!
    Das liegt daran, dass du zwar eine neue Farbe definiert hast, aber diese wird garnicht eingesetzt.

    PHP-Code:
    <?php
    if (!$image
       { 
       
    $image imageCreateTrueColor(400300); 
       
    $bg imageColorAllocate($image51102153);
       
    ImageFill($image00$bg);
       } 
    ?>
    Mit ImageFill() wird die komplette Fläche mit der Farbe $gb gefüllt.

    @$image = imageCreateFromJPEG('$bild');
    Zum Unterdrücken von Fehlermeldungen ist zwar @ ganz nett, aber keine feine englische Art.
    Prüfe mit IF ob $bild vorhanden ist, und je nachdem wird dann $image angelegt.

    Und ein error_reporting(E_ALL); am Anfang vom Script hätte dich jetzt schon darauf hingewiesen, dass einiges undefiniert ist.

    Einen Kommentar schreiben:


  • alisa
    antwortet
    @cix88

    eigentlich ist mein ziel recht schnell und einfach erklärt:

    ich möchte ne' bildergalerie aufbauen.
    der oben gezeigte script ist noch lange nicht fertig. -> der soll aber später die einzelnen bilder groß darstellen. sollte mal eines der bilder nicht verfügbar sein, kommt dieser if-block zum einsatz womit ein alternativbild angezeigt werden soll.
    da in die anzuzeigenden bilder noch text mit eigefügt werden soll, versuche ich es auf diese weise. ich möchte das schliesslich einfach nur lernen und verstehen.

    ich kopiere mit sicherheit nicht einfach nur scripte ab. -> bringt mir ja nix.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Also ich habe keine Ahnung was du eigentlich machen willst.
    Irgendwie weist du garnicht was die einzelnen Funktion bedeuten.
    Dein PHP-Code passt hinten und vorne nicht zusammen.
    Aber da ich jetzt kein Bock habe, aus dem Handbuch zu zitieren, würde ich dich bitten mal die Grafik-Funktionen im Handbuch durchzulesen.

    Ganz speziell:
    - imageCreateFromJPEG()
    - imageCreateTrueColor()

    Solange wie das nicht klar ist, nutzen auch keine anderen Tutorials.
    Abkopieren ist das eine, verstehen das andere

    Einen Kommentar schreiben:


  • alisa
    antwortet
    @CIX88

    hab den code nochmals überarbeitet:

    PHP-Code:
    <?php
    header
    ("Content-Type: image/jpg");

    session_start();

    $bild $_SESSION['image'];

    @
    $image imageCreateFromJPEG('$bild');

    if (!
    $image)
        {
        
    $image imageCreateTrueColor(400300);
        
    $bg imageColorAllocate($image51102153);
        }


    imageJPEG($image);
    imageDestroy($image);

    ?>

    allerdings bekomme ich immer nur ein schwarzes bild!

    -> $bild ist noch immer leer!

    es geht mir darum das ein alternativbild erstellt wird wenn $bild nicht verfügbar ist.

    kann es sein das ich bei der farbe einen fehler hab?

    alisa

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    das bild wird nicht übergeben ...
    So ein Blödsinn, dann musste schon alles in IF einklammern

    Und übrigens kommt deine Fehlermeldung von hier:

    $image = imageCreateFromJPEG('$bild');

    Und das steht nicht innerhalb von IF.
    Weiterhin würde ich ja nach $bild erst fragen, anstatt nach $image.

    Einen Kommentar schreiben:


  • alisa
    antwortet
    @CIX88

    das bild wird nicht übergeben ...

    deswegen soll ja auch der if-block ausgeführt werden.

    if (!$image)
    {
    $image = imagecreatetruecolor(400,300);
    $bg = imageColorAllocate($image,51,102,153);
    }
    @ben

    danke für den tip, schau ich mir gleich mal an...

    alisa

    Einen Kommentar schreiben:


  • imported_Ben
    antwortet
    Hi,
    vielleicht schaust du mal hier rein und spielst etwas mit den Anleitungen von WarrenFaith herum:
    Erstellung und Bearbeitung von Bildern mittels PHP

    Grüße Ben.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    könnt ihr mir einen tip geben...
    failed to open stream: No such file or directory in e:\php\test\bild.php on line 6
    Einfach mal gucken, ob das Bild in $bild auch dort ist.

    Einen Kommentar schreiben:

Lädt...
X