Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Plaatje maken met PHP

Annie
5 antwoorden
  • Hallo,

    Ik probeer een plaatje te maken met PHP. het plaatje zelf lijkt wel goed te gaan, ik kan het saven als file. Het probleem is dat er niets in de browser is te zien.

    [code:1:8764dc9391]
    <?php
    // filename: create_image.php
    $im = ImageCreate(200,50);
    $back_color = ImageColorAllocate($im,255, 255,255);
    $text_color = ImageColorAllocate($im,200,0,0);
    ImageString($im,4,10,16, "Image Test www.wimb.net", $text_color);

    Header("Content-type: image/png");
    ImagePNG($im,"image.png"). // save to file = OK
    imagepng($im);
    imagedestroy($im);
    ?>
    [/code:1:8764dc9391]
    Deze code wordt aangeroepen met:
    [code:1:8764dc9391]
    <html>
    <head>
    <title>PHP Image Test</title>
    </head>
    <body>
    <img src="create_image.php" />
    </body>
    </html>
    [/code:1:8764dc9391]

    Dit maakt dus een goed plaatje op disk, maar zet niets op het scherm.
    Wie helpt?

    wimb
  • http://nl2.php.net/imagepng

    Het lijkt eropt dat als je geen filename opgeeft, dat dan het plaatje wordt ge-outputted naar de browser, anders wordt het naar een file geoutputted.
    Heb je het al eens zonder filename geprobeerd?

    Met dit:
    http://www.php.net/manual/en
    ef.outcontrol.php
    schijn je dan beide te kunnen doen: je kunt dan de output die naar de browser gaat afvangen, en gebruiken om dat ook op te slaan als een file.
  • Ergens heel diep uit m'n geheugen:
    zet voor die outputstring-name een lege string.

    ImagePNG($im,"image.png"). // save to file = OK
    ImagePNG($im,"");

    Let ook op de hoofdletters, mijn ervaring is (maar dit kan uiteraard ergens een instelling zijn) dat php daar wel gevoelig voor is.
  • Dit heb ik een keer gebakken.
    Hij leest een regel in uit een tekstbestand en zet dat in een plaatje.
    Was als sig op een forum. Iedere keer een andere tekst.

    [code:1:00b0587e3c]<?php
    header ("Content-type: image/png");
    $im = @imagecreate (535, 35)
    or die ("Cannot Initialize new GD image stream");
    $wit = imagecolorallocate ($im, 255, 255, 255);
    $zwart = imagecolorallocate ($im, 0, 0, 0);
    $trans = imagecolortransparent($im, $wit);

    $blaat = @file("sig.txt");
    $line = count($blaat) - 1;
    $lala = rand(0,$line);

    function ImageStringWrap($image, $font, $x, $y, $text, $color, $maxwidth)
    {
    $fontwidth = ImageFontWidth($font);
    $fontheight = ImageFontHeight($font);

    if ($maxwidth != NULL) {
    $maxcharsperline = floor($maxwidth / $fontwidth);
    $text = wordwrap($text, $maxcharsperline, "
    ", 1);
    }

    $lines = explode("
    ", $text);
    while (list($numl, $line) = each($lines)) {
    imageString($image, $font, $x, $y, $line, $color);
    $y += $fontheight;
    }
    }

    ImageStringWrap($im, 2, 8, 5, $blaat[$lala], $zwart, 535);
    imagepng ($im);
    imagedestroy($im);
    ?>[/code:1:00b0587e3c]

  • Het werkt, ik heb hier wat gevonden.

    Ik had dus een lege regel boven de php start tag, en dan werk het niet goed.
    Het vreemde is dat het plaatje wel goed gesaved kon worden.


    wimb

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.