Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Mit GD Thumbnails erstellen

Diskussion: Mit GD Thumbnails erstellen im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Moinsen :D hab mal ne Frage bin grad dabei ne Page zu machen, und ich würde halt gerne picz ...

Antwort
Alt 28.11.06, 15:26   #1 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard Mit GD Thumbnails erstellen

Anzeige

Moinsen :D
hab mal ne Frage bin grad dabei ne Page zu machen, und ich würde halt gerne picz einbinden die dann in der Übersicht als Thumbnail angezeigt werden, ohne dass ich sie verkleinern muss... ich weiß GD kann sowas aber kp wie o0

Dankeschön schon mal im voraus ;)

Habe das im I-Net gefunden aber das klappt nicht gibt nur cryptische Sachen aus so Sonderzeichen usw.

PHP-Code:
<?php
header
("Content-type: image/jpeg");
$src    =  "img/imgp4830.jpg";
$img     =  imagecreatefromjpeg($src);
$imgSize =  getImageSize ($src);

$nHoch  =  40;
$factor =  $imgSize[1]/$nHoch;
$nBreit =  $imgSize[0]/$factor;

$nImg   =  imagecreate($nBreit$nHoch);
$copy   =  imagecopyresized($nImg$img0000$nBreit$nHoch$imgSize[0], $imgSize[1]);
imagejpeg($nImg""95);
imagedestroy($nImg);
?>
reaLInsanity ist offline   Mit Zitat antworten
Alt 28.11.06, 15:58   #2 (permalink)
 
Registriert seit: 29.01.06
xsheep Leistung: Facit NTK
Likes: 0
Standard

Wenn nur Sonderzeichen ausgegeben werden, dann wird das header("Content-type: image/jpeg") vom Browser nicht richtig interpretiert oder du hast schon Zeichen ausgegeben, bevor du header() angewendet hast. Wenn das nicht der Fall ist, sollte es eigentlich funtkionieren.
xsheep ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 28.11.06, 16:04   #3 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

kannst ja mal hier gucken: http://real-insanity.de/schatznme/in...p?section=picz der gibt da i-wie in dem kasten nur so cryptischen müll bei mir aus x)

Hatte das auch schonmal auspprobiert aber das geht genauso wenig
PHP-Code:
//parser liest quellbild ein
$quellbild=imagecreatefromjpeg("img/imgp4830.jpg");

//neue breite -> hoehe wird entsprchend skaliert (px)
$breite_neu 200;

//breite und hoehe des quellbildes werden in variablen geschrieben
$breite imagesx($quellbild);
$hoehe imagesy($quellbild);

//multiplikator fuer die skalierung errechnen
$skalierungsfaktor $breite/$breite_neu;
//neue hoehe errechnen
$hoehe_neu $hoehe/$skalierungsfaktor;

//Filehandle fuer das 2te Bild, das eigentliche Thumbnail
$zielbild imagecreate($breite,$hoehe);

//kopiert das alte bild in das neue und skaliert nach den letzen 4 faktoren
$thumb=imagecopyresampled($zielbild,$quellbild,0,0,0,0,$breite_neu,$hoehe_neu,$breite,$hoehe);
echo 
"<img src=".$thumb.">"
reaLInsanity ist offline   Mit Zitat antworten
Alt 28.11.06, 17:04   #4 (permalink)
 
Registriert seit: 29.01.06
xsheep Leistung: Facit NTK
Likes: 0
Standard

Beim zweiten Codeschnipsel ist ein Fehler drinn, da wird nämlich beim <img>-Tag anstatt einer gültigen Adresse zum Bild das Bild selber in das src-Attribut geschreiben. Du müsstest das Thumbnail in einem Script erzeugen und im anderen Script den <img>-Tag mit der Adresse zum Thumbnail-Script generieren. Das Script enthält auch noch andere Semantik/Syntax-Fehler, korrekt würde es so aussehen:

thumbnail.php:
PHP-Code:
<?php

$quellbild
=imagecreatefromjpeg("img/imgp4830.jpg");

$breite_neu 50;

$breite imagesx($quellbild);
$hoehe imagesy($quellbild);
$skalierungsfaktor $breite/$breite_neu;
$hoehe_neu $hoehe/$skalierungsfaktor;

$zielbild imagecreatetruecolor($breite_neu,$hoehe_neu);
imagecopyresampled($zielbild,$quellbild,0,0,0,0,$breite_neu,$hoehe_neu,$breite,$hoehe);
header("Content-type: image/jpeg");
imagejpeg($zielbild''100);

?>
foobar.html:
Code:
... <img src="thumbnail.php" /> ...
xsheep ist offline   Mit Zitat antworten
Alt 28.11.06, 18:21   #5 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Lightbulb

Mit jedem Aufruf der Seite die Thumbnails on-the-fly mit PHP zu erzeugen geht aber ordentlich auf die Performance... erst recht, wenn man auch noch mehrere davon in einer Galerieansicht hat. Die Thumbnails sollten also eher auf dem Dateisystem abgelegt und dann als normale Bilddateien eingebunden werden.

Das sollte einfach möglich sein, indem man imagejpeg() als zweiten Parameter einen Dateinamen übergibt, unter dem das dann abgelegt wird.
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 28.11.06, 18:31   #6 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

juhu es klappt x) also das "on-the-fly"
sry bin völliger php noob, bzw. GD-Noob, wie meinstn das @ LX?


hab dennoch eine frage kann man die auch dynamisch verlinken lassen? d.h. meherer bilder inner schleife z.b. aufrufen und die dann mit <a href=""> verlinken...?

Also praktisch wie einen Bildergallerie mit umblättern, wenn ich drauf klicke öffnet sich bild in groß und vllt mysql anbindung
reaLInsanity ist offline   Mit Zitat antworten
Alt 28.11.06, 19:46   #7 (permalink)
 
Registriert seit: 29.01.06
xsheep Leistung: Facit NTK
Likes: 0
Standard

Wenn du die Bilder "on-the-fly" mit einer Schleife generieren willst, kannst du das so machen:

foobar.php:

PHP-Code:
<?php

$max
=count(scandir("img"))-2;

for(
$i=0$i<$max$i++)
    echo 
"<img src=\"create_pic.php?id=".$i."\" />";

?>
create_pic.php:

PHP-Code:
<?php

$breite_neu 
50;
$handle opendir("img");

for(
$i=0$i<=$_GET['id']+2&&$i>=0$i++)
    
$bild=readdir($handle);

list(
$breite$hoehe$format) = getimagesize("img/".$bild);

switch(
$format){
    case 
1:
      
$quellbild imagecreatefromgif("img/".$bild);
      break;
    case 
2:
      
$quellbild imagecreatefromjpeg("img/".$bild);
      break;
    case 
3:
      
$quellbild imagecreatefrompng("img/".$bild);
}

$skalierungsfaktor $breite/$breite_neu;
$hoehe_neu $hoehe/$skalierungsfaktor;

$zielbild imagecreatetruecolor($breite_neu,$hoehe_neu);
imagecopyresampled($zielbild,$quellbild,0,0,0,0,$breite_neu,$hoehe_neu,$breite,$hoehe);
header("Content-type: image/jpeg");
imagejpeg($zielbild''100);

?>
So sollten eigentlich alle Bilder im Verzeichnis "/img/" angezeigt werden. Wenn du es nicht "on-the-fly" willst, musst die Thumbnails im Uploadscript generieren und dann speichern.
xsheep ist offline   Mit Zitat antworten
Alt 28.11.06, 19:57   #8 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Code:
Fatal error: Call to undefined function: scandir() in /srv/www/htdocs/web81/html/realinsanity/schatznme/inc/inhalt/picz.html on line 5
Das sagt der mit jetzt 0o worann kann das liegen?
reaLInsanity ist offline   Mit Zitat antworten
Alt 28.11.06, 20:05   #9 (permalink)
 
Registriert seit: 25.06.06
0wnZ Leistung: Facit NTK
0wnZ eine Nachricht über ICQ schicken
Likes: 0
Standard

rtfm
läuft erst ab version 5 von php wahrschreinlich läuft bei dir noch version 4
0wnZ ist offline   Mit Zitat antworten
Alt 28.11.06, 20:07   #10 (permalink)
 
Registriert seit: 29.01.06
xsheep Leistung: Facit NTK
Likes: 0
Standard

Scandir() ist erst ab PHP 5 verfügbar, als Alternative kannst du das benutzen:

PHP-Code:
<?php

$handle
=opendir("img");
for(
$max=-2readdir($handle); $max++);
closedir($handle);

for(
$i=0$i<$max$i++)
    echo 
"<img src=\"create_pic.php?id=".$i."\" />";

?>
xsheep ist offline   Mit Zitat antworten
Alt 28.11.06, 20:20   #11 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Lightbulb

Zitat:
Original von Abstauber
juhu es klappt x) also das "on-the-fly"
sry bin völliger php noob, bzw. GD-Noob, wie meinstn das @ LX?
"On-the-fly" heißt soviel wie dass es dann berechnet wird, wenn's benötigt wird... und das jedes Mal. Das heißt, jedes Mal, wenn jemand deine Thumbnail-Übersicht aufruft, rödelt PHP über alle benötigten Bilderdateien, konvertiert und verkleinert die und spuckt sie aus... ein ziemlicher Aufwand. Daher mein Vorschlag, dass du das Generieren der Thumbnails nur einmalig machst und das Ergebnis auf der Platte speicherst, damit du künftig dann direkt das Thumbnail ansprechen kannst.
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 29.11.06, 22:00   #12 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

also das klappt jedoch zeigt es mir nur ein pic an... normalerweise müsste es doch mehrere anzeigen bzw. den ganzen ordner inhalt oder?

und vllt ne verlinkung wäre net schlecht aber das probiere ich dann mal selber aus
reaLInsanity ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Mit GD Thumbnails erstellen
Themen-Optionen
Ansicht

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

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Thumbnails ohne Rootzugriff erstellen? TeeKayo2 (Web-) Design und webbasierte Sprachen 24 29.08.08 14:58
Diashow, Gallery, Thumbnails luky (Web-) Design und webbasierte Sprachen 3 30.11.06 19:04
PHP erstellen erik SN (In)security allgemein 17 16.08.05 21:34
Problem mit Thumbnails Supay Internet Allgemein 2 11.04.05 23:11
My SQL erstellen Guyfawkes Internet Allgemein 13 15.07.04 16:30


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