php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.03.2005, 21:56  
Gast
 
Beiträge: n/a
Standard DRINGEND HILFE BENÖTIGT!

Also, unten folgt das Script für eine Fotogalerie. Ausgabe erfolgt, jedoch in einer saumiesen Qualität und der Link auf die Originalfotos funktioniert zwar, zeigt das Foto in der gleichen Grösse und Qualität an.
Bitte um Hilfe, sollte das Morgen fertig haben.

Danke im voraus
PHP-Code:
<?php
error_reporting
(E_ALL); 
class 
thumbnail
{
    var 
$ordner,$zeilen$spalten;
    
//Membervariablen
    
function setVar ($pfad,$ordner,$hoch,$breit,$spalten,$zeilen)
    {
        
$this->pfad $pfad;
        
$this->ordner $ordner;
        
$this->hoch $hoch;
        
$this->breit $breit;
        
$this->spalten $spalten;
        
$this->zeilen $zeilen;
    }
    function 
erstellen ()
    {
        
$count="";
        
$bild="";

        
//Anzahl der Dateien im Verzeichnis
        
$pfad "fotogalerie/".$this->ordner;
        
$dir opendir($pfad); 
        while (
$a readdir($dir)) 
        { 
            if (
is_file("$pfad/$a")) 
            
$count++; 
        } 
        
closedir($dir);
        
//Ausgabe
        
$beginn 1;
        
$ende $beginn $this->spalten;
        for(
$x 1$x <= $this->zeilen$x++ ) 
        { 
            for(
$datei $beginn$datei $ende$datei++)
            {
                
//header('Content-type: image/jpeg');
                //Jpg Manipulation
                
$fotopfad $this->pfad."/".$this->ordner."/".$datei.".jpg";
                list(
$width_orig$height_orig) = getimagesize($fotopfad);
                if(
$width_orig >= $height_orig
                { 
                  
$new_width $this->breit
                  
$new_height $height_orig $this->breit $width_orig
                } 
                if(
$width_orig $height_orig
                { 
                  
$new_height $this->breit
                  
$new_width $width_orig $this->hoch $height_orig
                } 
                
$old_image imagecreatefromjpeg($fotopfad);
                
$new_image imagecreatetruecolor($new_width$new_height);
                
imagecopyresampled($new_image$old_image0000$new_width$new_height$width_orig$height_orig); 
                
imagejpeg($new_image$fotopfad100);
                echo 
"<a href=\"$fotopfad\" WIDTH=\"$width_orig\" HEIGHT=\"$height_orig\"><IMG SRC=\"$fotopfad\" WIDTH=\"$new_width\" HEIGHT=\"$new_height\"></a>";
            }
            
$beginn $beginn $this->spalten;
            
$ende$beginn $this->spalten;
            echo 
"
"

        }
    }
}
$fotogalerie = new thumbnail;
$fotogalerie->setVar ("fotogalerie","palacio",200,200,3,2);
echo 
$fotogalerie->erstellen ();
?>
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.03.2005, 21:58  
Gast
 
Beiträge: n/a
Standard

mit imagepng wird die qualität besser..
 
Alt 15.03.2005, 22:01  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
    imagejpeg
($new_image$fotopfad100); 
            echo 
"<a href=\"$fotopfad\" WIDTH=\"$width_orig\" HEIGHT=\"$height_orig\"><IMG SRC=\"$fotopfad\" WIDTH=\"$new_width\" HEIGHT=\"$new_height\"></a>";
?>
glaube hier stimmt was nicht, am anfang war di qualität gut. aber je öfter ich das script laufen lies, desto mieser. kann es sein dass die bilder überschrieben werden? sind original immer noch 600kb
 
Alt 15.03.2005, 22:04  
Gast
 
Beiträge: n/a
Standard

imagejpeg($new_image, $fotopfad, 100);

soll hier das bild nur ausgegeben werden?

wenn ja, lass das fotopfad weg!
 
Alt 15.03.2005, 22:05  
Gast
 
Beiträge: n/a
Standard

ja, ich will das bild nur komprimiert ausgeben, um die ladezeit zu verringern.

wenn ich das weglasse, muss ich dann wieder den header setzten?
 
Alt 15.03.2005, 22:08  
Gast
 
Beiträge: n/a
Standard

das komprimieren dauert länger als wenn dus direkt ausgibst glaub ich...

Die Angabe des Dateinamens filename ist optional. Fehlt er, werden die erzeugten Bilddaten direkt ausgegeben. Um die Angabe des Dateinamen zu umgehen, dennoch aber den Parameter als solchen zu nutzen, können Sie einen Leerstring ('') benutzen. Durch Verwendung der Funktion header() mit der "content-type"-Angabe "image/jpeg" können Sie PHP-Skripte erstellen, welche die JPEG-Ausgabe direkt vornehmen.
 
Alt 15.03.2005, 22:11  
Gast
 
Beiträge: n/a
Standard

imagejpeg($new_image, '', 100);//so mit header
imagejpeg($new_image, 100);//so ohne header

stimmt das so?
 
Alt 15.03.2005, 22:24  
Gast
 
Beiträge: n/a
Standard

so gibt das script nur noch 1 foto aus!
PHP-Code:
<?php
error_reporting
(E_ALL); 
class 
thumbnail
{
    var 
$ordner,$zeilen$spalten;
    
//Membervariablen
    
function setVar ($pfad,$ordner,$hoch,$breit,$spalten,$zeilen)
    {
        
$this->pfad $pfad;
        
$this->ordner $ordner;
        
$this->hoch $hoch;
        
$this->breit $breit;
        
$this->spalten $spalten;
        
$this->zeilen $zeilen;
    }
    function 
erstellen ()
    {
        
$count="";
        
$bild="";
        
header('Content-type: image/jpeg');
        
//Anzahl der Dateien im Verzeichnis
        
$pfad "fotogalerie/".$this->ordner;
        
$dir opendir($pfad); 
        while (
$a readdir($dir)) 
        { 
            if (
is_file("$pfad/$a")) 
            
$count++; 
        } 
        
closedir($dir);
        
//Ausgabe
        
$beginn 1;
        
$ende $beginn $this->spalten;
        for(
$x 1$x <= $this->zeilen$x++ ) 
        { 
            for(
$datei $beginn$datei $ende$datei++)
            {
                
//header('Content-type: image/jpeg');
                //Jpg Manipulation
                
$fotopfad $this->pfad."/".$this->ordner."/".$datei.".jpg";
                list(
$width_orig$height_orig) = getimagesize($fotopfad);
                if(
$width_orig >= $height_orig
                { 
                  
$new_width $this->breit
                  
$new_height $height_orig $this->breit $width_orig
                } 
                if(
$width_orig $height_orig
                { 
                  
$new_height $this->breit
                  
$new_width $width_orig $this->hoch $height_orig
                } 
                
$old_image imagecreatefromjpeg($fotopfad);
                
$new_image imagecreatetruecolor($new_width$new_height);
                
imagecopyresampled($new_image$old_image0000$new_width$new_height$width_orig$height_orig); 
                
imagejpeg($new_image,''50);
                echo 
"<a href=\"$fotopfad\" WIDTH=\"$width_orig\" HEIGHT=\"$height_orig\"><IMG SRC=\"$fotopfad\" WIDTH=\"$new_width\" HEIGHT=\"$new_height\"></a>";
            }
            
$beginn $beginn $this->spalten;
            
$ende$beginn $this->spalten;
            echo 
"
"

        }
    }
}
$fotogalerie = new thumbnail;
$fotogalerie->setVar ("fotogalerie","palacio",200,200,3,2);
echo 
$fotogalerie->erstellen ();
?>
 
Alt 16.03.2005, 08:22  
Gast
 
Beiträge: n/a
Standard

Mal was anderes. Dir ist klar, dass das Generieren zur Laufzeit Schwachsinn ist, oder? Sowas macht man 1x und speichert das verkleinerte Bild ab.

Gruß
phpfan
 
Alt 16.03.2005, 10:26  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard

Zitat:
Zitat von phpfan
Mal was anderes. Dir ist klar, dass das Generieren zur Laufzeit Schwachsinn ist, oder? Sowas macht man 1x und speichert das verkleinerte Bild ab.

Gruß
phpfan
Das versucht er ja, er vergißt nur, das gespeicherte Bild dann auch zu nutzen
PHP-Code:
<?php
if ( !file_exists($fotopfad)) { //Wenn das Bild noch nich generiert wurde...
  // ... dann generiere es
}
// Und gib dann das img-Tag aus
?>
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Brauche dringend Hilfe von Experten! Leinberger PHP Tipps 2008 26 27.07.2008 17:51
dringend hilfe für mail-versand!!! PHP Tipps 2006 1 07.03.2006 11:16
brauche sehr schnell und dringend hilfe Beitragsarchiv 13 24.10.2005 13:11
HILFE ! Brauche ganz dringend hilfe! PHP Tipps 2005-2 2 10.10.2005 23:08
Brauche dringend Hilfe!! DaronM PHP Tipps 2005-2 8 22.07.2005 05:32
Brauche dringend Hilfe, Aufgabe fürs Studium (Upload-Script trivial Beitragsarchiv 23 23.06.2005 16:25
Brauche ganz dringend Hilfe! HTML, Usability und Barrierefreiheit 1 31.03.2005 11:26
[Erledigt] Brauche dringend Hilfe PHP Tipps 2005 19 01.02.2005 20:21
Bitte dringend um Hilfe PHP Tipps 2005 7 05.01.2005 11:19
[Erledigt] Fehler in meinem Forum. Dringend Hilfe gesucht! Was nun ??? PHP Tipps 2004 1 03.11.2004 22:48
[Erledigt] mysql-Abfrage in Tabelle ausgeben - dringend hilfe PHP Tipps 2004 2 03.11.2004 15:41
[Erledigt] DRINGEND HILFE CMS PHP-Fortgeschrittene 2 02.11.2004 16:07
[Erledigt] UPDATE = NO Update aber kein fehler..dringend hilfe suchend Datenbanken 2 25.09.2004 16:28
Absoluter anfänger braucht dringend hilfe PHP Tipps 2004 8 04.07.2004 11:21
Bräuchte mal dringend Hilfe! PHP Tipps 2004 3 22.06.2004 09:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.