TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 04.07.2002, 16:49   #1
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein

GD-Lib: Bilddateigenerierung klappt nicht, wie sie soll


Ich hab vor, mir ein kleines Fotogallerie-Script zu schreiben, das Thumbnails zu seinen Bildern automatisch erzeugen soll, falls sie noch nicht vorhanden sind.

Diese Aufgabe soll folgende Methode übernehmen:

PHP-Code:

    
function createThumb($imgfile)
    {
        
$thumbfile $this->dir_thumbs $this->prefix_thumbs $imgfile;

//        if(!file_exists($thumbfile))
        
{
            
$handle_image ImageCreateFromJPEG($this->dir_images $imgfile);

            
$handle_thumb ImageCreate($this->thubmnail_width$this->thumbnail_height);
            
            
$width imageSX($handle_image);
            
$height imageSY($handle_image);
            
//            echo "Original image: $dir_images . $imgfile - $width x $height";
            
            
imagecopyresized ($handle_thumb$handle_image0000$width$height$this->thumbnail_width $this->thumbnail_height);

            
imagegd2($handle_thumb$thumbfile);
        }
        return 
$thumbfile;
    } 
Die Funktion prüft das Vorhandensein einer Thumbnail-Datei zur übergebenen Datei $imgfile und soll diese falls notwendig generieren.

Dazu wird das Originalbild geladen, auf die angebegenen Thumbnail-Maße verkleinert und in einer neuen Datei abgespeichert.

Diese Thumbnail-Datei wird ansich auch erzeugt, ist allerdings in jedem Fall lediglich 775 Byte groß und kein gültiges JPEG.

Was mach ich falsch?

Geändert von seb (04.07.2002 um 16:55 Uhr).
seb ist offline   Mit Zitat antworten


Alt 04.07.2002, 16:55   #2
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Schau Dir mal dieses Script an, es macht genau das, was Du brauchst:

http://www.flashdreams.de/tuts/php-t...humbnails.html
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 04.07.2002, 16:56   #3
jph
TP-Veteran
 
Benutzerbild von jph
 
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
jph ist auf einem guten Weg
hilf dir das?
http://www.traum-projekt.com/forum/s...9938#post79938
__________________
Internetprojekte & Webdesign
www.janheck.de
post@janheck.de
jph ist offline   Mit Zitat antworten
Alt 04.07.2002, 17:03   #4
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
okay, danke...ich werd mal gucken.

Übrigens hatte ich einen simplen Tippfehler in einem Variablennamen ('$this->thubmnail_width')...seit der korrigiert ist, werden die Thumbs immerhin 11k groß...das is schon eher realistisch, aber funktionierende Grafiken sind sie immer noch nicht.
seb ist offline   Mit Zitat antworten
Alt 04.07.2002, 17:20   #5
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Soweit ich eure Vorschläge verstehe, generieren beide Scripts die Thumbnails bei jedem Aufruf neu und senden die Bildinformationen direkt an den Browser, ohne jedoch irgendeine Datei anzulegen.

Ich möcht allerdings 'echte' Thumbnail-Files erzeugen...kein Script, dass das Bild jedes mal neu berechnet und sich mit manipuliertem Header als Grafikdatei ausgibt.
seb ist offline   Mit Zitat antworten
Alt 04.07.2002, 17:39   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
erkläre hiermit KW 27 zur GD woche

PHP-Code:
function bild($bild)
{
   if (!
$bild) exit;
  
    
$size=getimagesize($bild); 
    
$breite=$size[0]; 
    
$hoehe=$size[1]; 
    
$neueBreite=100;   //besser porzentuelle berechnung...
    
$neueHoehe=200;  //besser porzentuelle berechnung...

    
$altesBild=ImageCreateFromJPEG($bild); 
    
$neuesBild=ImageCreate($neueBreite,$neueHoehe); 
    
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
    
ImageJPG($neuesBild,$pfadmitneuenbildnamen); 

hab ja gewusst, das könnte manchmal nützlich sein...


lf
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 04.07.2002, 17:59   #7
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
...imageJPEG, genau. Das hab ich mittlerweile auch entdeckt, und im prinzip funktionierts jetzt.

Allerdings lässt die Qualität der Thumbnails sehr zu wünschen übrig, egal was ich als drittes Argument an imageJPEG() übergebe.

Ganz ohne (Standardwert laut Dokumentation: 75/Gute Qualität) siehts so aus:

Fotogallerie

[edit]

okay, schuld warn vertauschte variablen in imagecopyresized().
Jetzt klappts super und genau so, wie ichs wollte

-> Thema erledigt

Geändert von seb (04.07.2002 um 18:14 Uhr).
seb ist offline   Mit Zitat antworten
Alt 04.07.2002, 21:54   #8
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Zitat:
Original geschrieben von seb
Soweit ich eure Vorschläge verstehe, generieren beide Scripts die Thumbnails bei jedem Aufruf neu und senden die Bildinformationen direkt an den Browser, ohne jedoch irgendeine Datei anzulegen.

Ich möcht allerdings 'echte' Thumbnail-Files erzeugen...kein Script, dass das Bild jedes mal neu berechnet und sich mit manipuliertem Header als Grafikdatei ausgibt.
Nein - das Script, was ich Dir via URL angegeben habe, erzeugt von einem Bild ein Tumbnail und legt es in einem Verzeichnis ab. Änderst Du das Bild, wird automatisch ein neues Tumbnail erzeugt. Das Script ist wirklich sehr nützlich, es kann auch vergrößern/verkleinern usw.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 05.07.2002, 00:02   #9
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Hmmm...*nochmalanguck*...okay, ich muss zugeben, dass du recht hast.

Trotzdem bleib ich bei meinem...es macht das, was ich wollte und ich leg viel Wert drauf, meine Scripts selbst zu schreiben.
Aus 'Stolz' (vielleicht n bisschen übertrieben, der Ausdruck) und weil das die beste Lernmethode überhaupt is.
seb ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
GD-Lib: Bilddateigenerierung klappt nicht, wie sie soll GD-Lib: Bilddateigenerierung klappt nicht, wie sie soll
« problem mit automatischer ´vorschau von bildern | [php] akutelle url »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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


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

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67