jimbob: image resize in tag <img src ...

ich habe folgende function gebastelt!
denk das sie im grunde okay ist nur ein problem hab ich ....
ich will die funtion im tag benutzen!

<img src=".make_thumb(??)">
nur wie kann ich dies nun machen? weil den header wie bis dato mitsenden ist nicht möglich!!! weil schon ein header gesendet wurde!

<?PHP

function make_thumb($path)
{
//START FUNCTION
//$path= "/user".$path;

Constants

define(MAX_WIDTH, 150);
define(MAX_HEIGHT, 150);

Load image

$img = null;
$ext = strtolower(end(explode('.', $path)));

if ($ext == 'jpg' || $ext == 'jpeg') {
    $img = @imagecreatefromjpeg($image_path);
}
else if ($ext == 'png') {
    $img = @imagecreatefrompng($image_path);

Only if your version of GD includes GIF support

}
else if ($ext == 'gif') {
    $img = @imagecreatefrompng($image_path);
}

If an image was successfully loaded, test the image for size

if ($img) {

# Get image size and scale ratio
    $width = imagesx($img);
    $height = imagesy($img);
    $scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);

# If the image is larger than the max shrink it
    if ($scale < 1) {
        $new_width = floor($scale*$width);
        $new_height = floor($scale*$height);

# Create a new temporary image
        $tmp_img = imagecreatetruecolor($new_width, $new_height);

# Copy and resize old image into new image
        imagecopyresized($tmp_img, $img, 0, 0, 0, 0,
                         $new_width, $new_height, $width, $height);
        imagedestroy($img);
        $img = $tmp_img;
    }
}

Create error image if necessary

if (!$img)
{
    $img = imagecreate(MAX_WIDTH, MAX_HEIGHT);
    imagecolorallocate($img,0,0,0);
    $c = imagecolorallocate($img,70,70,70);
    imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c2);
    imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c2);
}

echo $path;

Display the image

header("Content-type: image/jpeg");
imagejpeg($img);

//END FUNCTION
}

?>
<html>
<head></head>
<body>

<?php
echo "<img src=".make_thumb("???").">;";
?>
</body>
</html>

  1. Hi,

    <img src=".make_thumb(??)">

    Im src-Attribut steht nicht das Bild selbst, sondern dessen URL!

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Hello,

      wieso wurde schon ein Header gesendet? Das <img src="..."> stellt doch einen eigenen Request dar, und den beantwortet der Server mit einem eigenen Header nur für Den Bilddatenstrom.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Hi,

        wieso wurde schon ein Header gesendet? Das <img src="..."> stellt doch einen eigenen Request dar, und den beantwortet der Server mit einem eigenen Header nur für Den Bilddatenstrom.

        Weil hier versucht wird, das Bild in der selben Response auszuliefern wie die Seite selbst.
        jimbob versucht ja, im src-Attribut das Bild auszuliefern, statt dort wie in HTML vorgesehen die URL des Bildes anzugeben (was dann den Browser veranlassen würde, einen neuen Request für das Bild auszuliefern).

        HTTP funktioniert so, daß pro Request genau eine Antwort erfolgen kann, nicht mehrere.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.mud-guard.de/
        1. Hi,

          jimbob versucht ja, im src-Attribut das Bild auszuliefern, statt dort wie in HTML vorgesehen die URL des Bildes anzugeben (was dann den Browser veranlassen würde, einen neuen Request für das Bild auszuliefern).

          Korrektur: "auszuliefern" durch "abzusetzen" ersetzen.

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.mud-guard.de/