Großes Bild von php-Seite nur verkleinert anzeigen lassen.

Diskutiere mit über: Großes Bild von php-Seite nur verkleinert anzeigen lassen. im Web-Programmierung Forum

  1. mactrisha

    mactrisha Thread Starter MacUser Mitglied

    Beiträge:
    674
    Medien:
    2
    Zustimmungen:
    4
    Registriert seit:
    27.11.2003
    Hi all,

    in meiner dynamischen Seite wird ein Bild so angezeigt:

    HTML:
    <img src='<?php echo "motiv_01/upload_01/".$motiv_01->Value("motiv_bildurl_01")?>' alt="" height="170" width="213" border="0">
    Dabei handelt es sich aber um ein Bild, das in hoher Auflösung auf dem Server steht und nur im Browser auf 170 x 213 verkleinert wird. Die Bytezahl bleibt natürlich und das verkleinerte Bild lädt sehr lange. Jetzt will ich das Bild aber nur für den Moment der Anzeige verkleinert in der Größe 170 x 213 darstellen lassen. Ich will es aber nicht als Thumbnail auf den Server hochspeichern. Wie kann ich das machen?

    Das funktioniert schon:
    PHP:
    <?php
    header
    ('Content-type: image/jpeg');
    $myimage resizeImage('2475-13.jpg''213''170');
    print 
    $myimage;

    function 
    resizeImage($filename$newwidth$newheight){
    list(
    $width$height) = getimagesize($filename);
    if(
    $width $height && $newheight $height){
    $newheight $height / ($width $newwidth);
    } else if (
    $width $height && $newwidth $width) {
    $newwidth $width / ($height $newheight);
    } else {
    $newwidth $width;
    $newheight $height;
    }
    $thumb imagecreatetruecolor($newwidth$newheight);
    $source imagecreatefromjpeg($filename);
    imagecopyresized($thumb$source0000$newwidth$newheight$width$height);
    return 
    imagejpeg($thumb);
    }
    ?>  
    Dieses Script tut, was ich will, aber es stellt das neue kleine Bild in einer eigenen Seite dar. Wie könnte ich es machen, dass mein Code <img src='<?php echo "motiv_01/upload_01/".$motiv_01->Value("motiv_bildurl_01")?>' alt="" height="170" width="213" border="0"> schon diese verkleinerte Anzeige automatisch übernimmt, meine bisherigen Versuche haben immer einen Konflikt mit dem Header ergeben, weil das Script oben einen header('Content-type: image/jpeg'); für die Anzeige definiert und meine Seite, in der die Codezeile <img src='<?php echo "motiv_01/upload_01/".$motiv_01->Value("motiv_bildurl_01")?>' alt="" height="170" width="213" border="0"> drin ist ja nicht Content-type: image/jpeg ist.

    Wie könnte ich das denn lösen? Kann mir jemand einen Denkanstoß geben, bitte?

    Salü,
    mactrisha.
     
  2. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    imagemagick stellt Dir Routinen bereit, die Bilder, unter anderem auch, skalieren können. Damit reduzierst Du dann auch die Menge der zu transferierenden Daten!
    Ist in so einem Falle ein gutes Image-Subsystem und kann von PHP aus aufgerufen werden.
     
  3. Hans Wurst

    Hans Wurst MacUser Mitglied

    Beiträge:
    197
    Zustimmungen:
    0
    Registriert seit:
    25.05.2005
    du könntest die bilder auch temporär auf dem server speichern, so hast du jedenfalls gewährleistet, dass das bild auch problemlos einbindbart ist. wenn du deinen webspace nicht zu arg belasten willst, kannst du die entsprechenden ja mittels eines delete scripts nach x stunden löschen. prinzipiell besser, da weniger serverlastig, ist es aber, die thumbs zu speichern. hat sich zumindest bei stark frequentierten pages, die auch die gd nutzen herausgestellt. Wie sich das mit IM verhält, kann ich nicht sagen.
     
  4. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    Registriert seit:
    30.01.2005
    speicher den code in einer eigenen datei ab und rufe dann diese datei in deiner seite auf.

    z.B. /thumbnail.php?bild=<?echo $bild; ?>

    $bild muss dabei die info sein, welches das thumbnail-script braucht, um das richtige bild zu finden.
     
  5. mactrisha

    mactrisha Thread Starter MacUser Mitglied

    Beiträge:
    674
    Medien:
    2
    Zustimmungen:
    4
    Registriert seit:
    27.11.2003
    Hi all,

    ich brauche nochmal eure Hilfe in dieser Sache.
    Jetzt habe ich einen anderen Code gefunden und abgeändert, dieser macht jetzt ein Bild kleiner, wie ich es will, aber nur ein Bild, das man vorher in der letzten Zeile mit dem Pfad dahin festlegt.

    PHP:
    <?
    function 
    ResizeImage($url$maxvalue$type='width')
    {
        
    $ImgInfo getimagesize($url);
    $ImgWidth $ImgInfo[0];
        
    $ImgHeight $ImgInfo[1];
    if ((
    $ImgHeight $maxvalue) && ($type=='height'))
    {
        
    $ImgHeight $maxvalue;
        
    $percent = ($ImgInfo[1] / $ImgHeight);
        
    $ImgWidth = ($ImgInfo[0] / $percent);
        }
        if ((
    $ImgWidth $maxvalue) && ($type=='width'))
        {
            
    $ImgWidth $maxvalue;
            
    $percent = ($ImgInfo[0] / $ImgWidth);
            
    $ImgHeight = ($ImgInfo[1] / $percent);
        }
    return 
    '<img src="'.$url.'" style="width:'.round($ImgWidth).'px; height:'.round($ImgHeight).'px; margin:10px 0 10px 0; border:0 none;" alt="" />';
    }
    echo 
    ResizeImage('http://www.domain.de/pfadzum/bild.jpg',213,'width');
    ?>
    Mein Problem ist jetzt, dass das Bild aber dynamisch aus einer Datenbank ausgelesen wird
    Code:
    <img src='<?php echo $aktuell->Value("akt_bild")?>' alt="" border="0">
    in der Datenbanktabelle ist der Pfad zu dem jeweiligen Bild gespeichert, der durch $aktuell->Value("akt_bild") eingelesen wird.

    Mein Problem ist jetzt, dass wenn ich die Zeile mit der Variable zum Bild wie folgt aktualisiere, dann bekomme ich eine Fehlermeldung:

    PHP:
    echo ResizeImage('http://www.domain.de/pfadzum/bild.jpg',213,'width');
    echo 
    ResizeImage('http://www.domain.de/$aktuell->Value("akt_bild")',213,'width');
    weil in die url nicht der Wert der Variable übernommen wird, sondern das $aktuell->Value("akt_bild") gesucht wird, wie man hier in der Fehlermeldung sieht. In die url müsste aber der jeweilige Pfad zum Bild aus der Datenbank stehen, wie kann ich diesen Code richtig schreiben?

    Salü,
    mactrisha.
     
  6. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Das ist vermutlich ein Quoting Problem.
    Versich mal
    PHP:
    echo ResizeImage("http://www.domain.de/$aktuell->Value(\"akt_bild\")",213,'width');
    oder
    PHP:
    echo ResizeImage("http://www.domain.de/$aktuell->Value(akt_bild)",213,'width');
    oder
    PHP:
    echo ResizeImage("http://www.domain.de/$aktuell->Value('akt_bild')",213,'width');
    Alternativ kannst Du folgendes versuchen:
    PHP:
    $bildpfad="http://www.domain.de/".$aktuell->Value("akt_bild");
    echo 
    ResizeImage($bildpfad,213,'width'); 
    Ist für meine Begriffe etwas übersichtlicher.
     
  7. mactrisha

    mactrisha Thread Starter MacUser Mitglied

    Beiträge:
    674
    Medien:
    2
    Zustimmungen:
    4
    Registriert seit:
    27.11.2003
    Hi maceis,

    Danke, das war es, juhu, es geht!

    PHP:
    $bildpfad="http://www.domain.de/".$aktuell->Value("akt_bild");
    echo 
    ResizeImage($bildpfad,213,'width'); 
    Salü,
    mactrisha.
     
Die Seite wird geladen...
Ähnliche Themen - Großes Bild php Forum Datum
Hochgeladenes Bild verzerren Web-Programmierung 04.09.2016
Bild beim scrollen stehen lassen Web-Programmierung 12.09.2013
wie bringe ich ein Bild in dieses Forum? Web-Programmierung 02.11.2010
Java Script Bild1 durch Bild2 ersetzten wenn Bild 2 fertig geladen Web-Programmierung 28.02.2010
Kleines Großes Projekt - milliondollarhomepage - als Fußballplatz Web-Programmierung 29.06.2009

Diese Seite empfehlen

Benutzerdefinierte Suche