GCF-Board

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!

GCF-Board » Web-Programmierung » PHP-thumbnail erstllen » Threadansicht

Autor Thread - Seiten: -1-
000
23.03.2005, 18:11 Uhr
Lucifer002

Foren Papst


Moin...

also ich hab auf meiner Page ein Fotoalbum gemacht und für manche User die Möglichkeit eingerichtet ein Bild hochzuladen.
Von allen hochgeladenen Bildern soll sogleich auch ein Thumbnail mit dem prefix "t_" erstellt und im gleichen Ordner gespeichert werden.
Soweit sogut, das hab ich ja eigentlich noch hingebkommen, aber alle meine Thumbnails sind eigentlich nur schwarz
Größe, Auslösung und Dateiname stimmen, nur der Inhalt geht verloren, kann mir da vllt einer helfen?

achja... habs auch schon mit ImageCreateTrueColor und ImageCopyResampled versucht, aber leider der gleiche Effekt

Quellcode:
$thumb2=ImageCreateTrueColor($NeuBreite,$NeuHoehe); //Thumbnail im Speicher erstellen
ImageCopyResampled($thumb2,$thumb1,0,0,$OrgBreite,$OrgHoehe,0,0,$NeuBreite,$NeuHoehe); //Bild in Thumbnail kopieren

$uploaddir --> Das Verzeichniss wo die Dateiein gepeichert werden sollen
$Photo --> Dateiname ohne .jpg


Quellcode:
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploaddir.$Photo.".jpg"))
{
    chmod($uploaddir.$Photo.".jpg",0755);
    chown($uploaddir.$Photo.".jpg","au000146");

    $thumb1 = imagecreatefromjpeg($uploaddir.$Photo.".jpg");  //erstellt ein Abbild im Speicher
    $Orgsize=getimagesize($uploaddir.$Photo.".jpg"); //ermittelt die Groesse des Bildes
    
    $OrgBreite=$Orgsize[0]; //die Breite des Bildes
    $OrgHoehe=$Orgsize[1]; //die Höhe des Bildes
    
    $NeuBreite = floor($OrgBreite / floor($OrgBreite / 100));  //die breite des Thumbnails
    $NeuHoehe= floor($OrgHoehe / floor($OrgBreite / 100)); //die Höhe des Thumbnails
    
    $thumb2=imagecreate($NeuBreite,$NeuHoehe); //Thumbnail im Speicher erstellen
    
    imagecopyresized($thumb2,$thumb1,0,0,$OrgBreite,$OrgHoehe,0,0,$NeuBreite,$NeuHoehe); //Bild in Thumbnail kopieren
    
    imagejpeg($thumb2,$uploaddir."t_".$Photo.".jpg"); //Thumbnail speichern
    
    imagedestroy($thumb1); //Speicherabbild wieder loeschen
    imagedestroy($thumb2); //Speicherabbild wieder loeschen
    
    echo "<head>\n";
    echo "<meta http-equiv="refresh" content="10; URL=http://domain.de?nav=$Nav&cont=$Cont&...";
    echo "</head>\n";
    echo "FILE UPLOADED<br><br>Sollte Ihr Browser keine weiterleitung unterstützen, <a href="http://domain.de?nav=$Nav&cont=$Cont&... Sie hier</a><br><br>\n";
    print_r($_FILES);
    
}

PS: GD ist in der Version 2.0.28 installiert
--
Wer Rechtschreibfehler findet muss einen ausgeben *g* ; Mozilla Firefox User und stolz darauf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
23.03.2005, 23:18 Uhr
ToP-PaPPa
Der, der den Hammer schwingt
Foren Papst


hatten wir das thema nicht neulich mal? *G*
--
If minds had anuses, blogging would be what your mind would do when it had to take a dump.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
24.03.2005, 09:05 Uhr
Lucifer002

Foren Papst


Fast
Gleiches Thema andere Problemstellung
--
Wer Rechtschreibfehler findet muss einen ausgeben *g* ; Mozilla Firefox User und stolz darauf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
24.03.2005, 10:03 Uhr
ToP-PaPPa
Der, der den Hammer schwingt
Foren Papst


versuch doch mal den da gezeigten code...
--
If minds had anuses, blogging would be what your mind would do when it had to take a dump.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
24.03.2005, 14:17 Uhr
Lucifer002

Foren Papst


welchen da gezeigten code? im thread 'bild verkleinern' ist kein Code gepostet
Habs aber schon herausgefunden

Syntax fehler:

Quellcode:
imagecopyresized($thumb2,$thumb1,0,0,0,0,$NeuBreite,$NeuHoehe,$OrgBreite,$OrgHoehe);

statt

Quellcode:
imagecopyresized($thumb2,$thumb1,0,0,$OrgBreite,$OrgHoehe,0,0,$NeuBreite,$NeuHoehe);


--
Wer Rechtschreibfehler findet muss einen ausgeben *g* ; Mozilla Firefox User und stolz darauf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
005
28.03.2005, 11:31 Uhr
Phaeilo

Foren Geselle


Jo ich hab auch mal so nen Script gecodet (http://www.chhuppert.de/philip/gallery) hatte das Problem das ich nen Algorythmus zum proportionalen Resizen brauchte.
--
Ich blogge wieder!
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
006
28.03.2005, 16:48 Uhr
Lucifer002

Foren Papst


Ich stelle mal gleich meine nächste Frage auch hier!
Also, ich habe ein Fotoalbum in PHP geschrieben und alle meine Fotos mit Thumbnails im Unterverzeichnis 'data/pics' und möchte jetzt aber aus bestimmten gründen dieses Verzeichniss vor Direktaufrufe schützen.
Dachte mir, ich mache das mittels einer .htaccess-Datei! Nur bekommt man dann im Fotoalbum das Login-Prompt vom Browser vorgeworfen
Die einzige Möglichkeit sowas zu unterdrücken wäre im Link Benutzer und Passwort beizufügen, was ja nciht gerade sinnvoll wäre! oder gibts da auch andere?
--
Wer Rechtschreibfehler findet muss einen ausgeben *g* ; Mozilla Firefox User und stolz darauf

Dieser Post wurde am 28.03.2005 um 16:49 Uhr von Lucifer002 editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
007
28.03.2005, 17:02 Uhr
ToP-PaPPa
Der, der den Hammer schwingt
Foren Papst


klar. das verzeichnis per .htaccess schützen und die bilder über ein php-skript ausgeben.
--
If minds had anuses, blogging would be what your mind would do when it had to take a dump.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
008
28.03.2005, 19:05 Uhr
Lucifer002

Foren Papst


Jetzt stellt sich aber meiner einer die Frage, wie ausgeben? Weil verlinken geht mit <img> nur noch, wenn ich <img src="root:bla@domain.at/data/pics/38.jpg"> eingebe und ob das sinnvoll ist?
--
Wer Rechtschreibfehler findet muss einen ausgeben *g* ; Mozilla Firefox User und stolz darauf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
009
28.03.2005, 19:49 Uhr
ToP-PaPPa
Der, der den Hammer schwingt
Foren Papst


du gibst an

<img src="domain.at/script.php?which=38.jpg">
--
If minds had anuses, blogging would be what your mind would do when it had to take a dump.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
010
28.03.2005, 21:36 Uhr
Lucifer002

Foren Papst


So... jetzt hab ich ein skript mit diesem Code

Quellcode:
<?php
session_register();
session_start();

$Dir = "data/pics/";
$Photo=$HTTP_GET_VARS['pic'];

        header('Content-Type: image/jpeg');
        $im = @ImageCreateFromJPEG ($Dir.$Photo); //Abbild erstellen
        imagejpeg($im);   //Ausgabe an den Browser
?>

Die Datei wird geladen und an den Browser ausgegeben, das müsste ja für ein solches Skript reichen
aber alles was ich rausbekomme ist

Zitat:
Die Grafik "http://domain.at/pic.php?2.jpg" kann nicht angezeigt werden, weil sie Fehler enthält.

Ich glaub, heute ist wirklich nicht mein Tag...
--
Wer Rechtschreibfehler findet muss einen ausgeben *g* ; Mozilla Firefox User und stolz darauf

Dieser Post wurde am 28.03.2005 um 21:37 Uhr von Lucifer002 editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
011
30.03.2005, 14:15 Uhr
Phaeilo

Foren Geselle


Aha du scheinst Firefox oder so etwas in der richtung zu benutzen. Guck mal in den Quelltext des Bildes oder Setz den Header mal probeweise auf "text/html". Dann solltest du Php Fehler sehen.

Hatte ich auch mal wenn es ein Fehler in einem solchen Script gibt knallt PHP es als Text raus, wenn der Header aber "img/jpeg" ist dann zeigt firefox nämlcih diese Maldung an.

Außerdem solltest du anstatt $HTTP_GET_VARS['pic'] besser $_GET['pic'] verwenden dann läuft das script auch unter PHP 5.
--
Ich blogge wieder!
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
012
30.03.2005, 14:19 Uhr
Phaeilo

Foren Geselle


Ach ja was soll das session_register da?

Bei mir funzt das thumb Script ohne probleme. Fehler treten auf wenn das Script die Datei nicht findet. Wenn du das Verzeichnis mit htaccess schützt kann PHP auch nicht mehr drauf zugreifen glaube ich. Mein Codevorschlag:

PHP-Quellcode:

<?php
header
('Content-Type: image/jpeg');

$Dir "pics/"// oder so etwas
$Photo=$_GET['pic']; // wegen PHP5

$controll=@fopen($Dir.$Photo,"r"); // Versucht die datei zu öffnen

if(!$controll)
{
     
$im=imagecreatetruecolor(100,100); // Erzeugt ein 100x100 Pixel großes schwarzes bild falls keine Datei gefunden wird, alternativ kann man auch eine "nicht gefunden" Datei einbinden
} else {
     
fclose($controll);
     
$im ImageCreateFromJPEG ($Dir.$Photo); //Abbild erstellen
}
imagejpeg($im);   //Ausgabe an den Browser
?>


Ich gebe dir auch gerne den Sourcecode von meiner Gallery wenn es dir weiterhilft.
--
Ich blogge wieder!

Dieser Post wurde am 30.03.2005 um 14:38 Uhr von Phaeilo editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
013
30.03.2005, 15:14 Uhr
Lucifer002

Foren Papst


So... hab jetzt hab ich deinen Code verwendet und da gehts
Ich finde jetzt aber keinen wirklichen Unterschied zwischen deinen code und meinen
ausser das du das File kontrollierst!
das session_regiester hat folgenden Sinn, dass ich sicher stellen will, das die Fotos bzw. das PHP-Skript nur von meiner seite aus aufgerufen wird, setzte ich auf der eigentlichen Seite eine Session-Variable die ich hier überprüfe!

Das mit .htaccess funktioniert schon, das Skript darf aber dann nicht im geschützten Bereich liegen! Das Skript arbeitet ja auch lokalerebene und daher kommt .htaccess nicht zum einsatz wenn auf die Bilder zugegriffen wird!

Ein Fotoalbum mit Upload-Funktion (inkl. Thumbnails ) und einfacher verwaltung hab ich schon zusammengebracht, kannst ja mal auf der Seite vorbeischauen (Link steht im Profil)
Aber Danke für das Angebot
--
Wer Rechtschreibfehler findet muss einen ausgeben *g* ; Mozilla Firefox User und stolz darauf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
014
30.03.2005, 19:51 Uhr
Phaeilo

Foren Geselle


Bitte hatte ja nix zu tun da code ich schonmal so nen paar zeilen
--
Ich blogge wieder!
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
015
24.08.2006, 01:45 Uhr
Schneemann1991

Foren Neuling


<?php
$Grafikdatei = $_GET["file"];
$ThumbnailHoehe = $_GET["h"];
$ThumbnailBreite = $_GET["w"];
$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];

if ($Bilddaten[2]==1) {
header("Content-type: image/gif");
$Originalgrafik = ImageCreateFromGIF($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageGIF($Thumbnailgrafik);
}
elseif($Bilddaten[2]==2) {
header("Content-type: image/jpeg");
$Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageJPEG($Thumbnailgrafik);
}
elseif($Bilddaten[2]==3) {
header("Content-type: image/png");
$Originalgrafik = ImageCreateFromPNG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImagePNG($Thumbnailgrafik);
}
imagedestroy($Thumbnailgrafik);
imagedestroy($Originalgrafik);
?>

sagen wir du speicherst den skript als thumbnail.php
dann kannst du jetzt deine bilder anzeigen mit:
<img src="thumbnail.php?file=<pfad zum bild>&w=<breite>&h=<höhe>">

der skript erstellt automatisch immer eine thumbnail und sendet diese an den client.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
016
09.04.2013, 14:17 Uhr
konglong

Foren Neuling


Bei mir funzt das thumb Script ohne probleme. Fehler treten auf wenn das Script die Datei nicht findet. Wenn du das Verzeichnis mit htaccess schützt kann PHP auch nicht mehr drauf zugreifen glaube ich. Mein Codevorschlag:
Dieser Post wurde am 09.04.2013 um 14:18 Uhr von konglong editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ Web-Programmierung ]  



German Computer Freaks

powered by ThWboard 3 Beta 2.85-rc3
© by Paul Baecher & Felix Gonschorek