WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 22.04.2005, 20:59   #1
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard PHP-Problem bei automatischer Bildvorschau

Hallo, PHP-Gurus!

Ich quäle mich derzeit mit einem doofen PHP-Problem rum und hoffe, dass man mir sagen kann, wo der Hund begraben liegt. Es geht darum, dass ich von allen .JPG-Dateien eines Directories eine Thumb-Vorschau erstellen will. Dazu habe ich mal folgendes Script geschrieben:

Zitat:
header("Content-type: image/jpeg");
$scale=3;
$size=getimagesize($image);
$width=round($size[0]/$scale);
$height=round($size[1]/$scale);
$src=imagecreatefromjpeg($image);
$dest=imagecreate($width,$height);
imagecopyresized($dest,$src,0,0,0,0,$width,$height ,$size[0],$size[1]);
imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);
Ausgelesen und angezeigt wird das Directory wie folgt:

Zitat:
$verz=dir("bilder/.");
while ($datei=$verz->read())
{
if ($eregi(".jpg$",$datei)):
echo("<a href='$datei'>");
echo("[img]thumbs.php?image=$datei[/img]");
echo("</a>\n");
endif;
}
Soweit funktioniert das auch, allerdings mit folgenden 'Schönheitsfehler': Die Thumbs werden farblich nicht korrekt wieder gegeben; es sieht so aus, als ob beim Verkleinern nur mehr 16 Farben zur Verfügung stehen, wodurch sie klarerweise nicht mehr viel Ähnlichkeit mit dem Original haben. Viele Bilder haben sogar mehr Ähnlichkeit mit einem SW- denn als Farbbild!

Any ideas? Thanks.....
____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Alt 22.04.2005, 21:05   #2
HOK
Jr. Member
 
Registriert seit: 03.11.2000
Beiträge: 21


HOK eine Nachricht über ICQ schicken
Standard

Hier eine Funktion dich ich mal gemacht habe.
//-----------------------------------------------------
function make_thumb($Grafikdatei,$GrafikPfadIn,$GrafikPfadO ut,$ThumbnailHoehe){

$GrafikPfadDateiIn=$GrafikPfadIn."/".$Grafikdatei;
$GrafikPfadDateiOut=$GrafikPfadOut."/".$Grafikdatei;

$Bilddaten = getimagesize("$GrafikPfadDateiIn");

$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];


$ThumbnailHoehe = 40;
$ThumbnailBreite = (int) ($Bilddaten[0]/$Bilddaten[1]*$ThumbnailHoehe);

if($Bilddaten[2]==1)
{
$Originalgrafik = ImageCreateFromGIF($GrafikPfadDateiIn);
$Thumbnailgrafik = ImageCreate($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageGIF($Thumbnailgrafik, $GrafikPfadDateiOut);
}
elseif($Bilddaten[2]==2)
{
$Originalgrafik = ImageCreateFromJPEG($GrafikPfadDateiIn);
$Thumbnailgrafik = ImageCreate($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageJPEG($Thumbnailgrafik, $GrafikPfadDateiOut);
}
elseif($Bilddaten[2]==3)
{
$Originalgrafik = ImageCreateFromPNG($GrafikPfadDateiIn);
$Thumbnailgrafik = ImageCreate($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImagePNG($Thumbnailgrafik, $GrafikPfadDateiOut);
}


}//function end
//-----------------------------------------------------

Greetz
HOK
HOK ist offline   Mit Zitat antworten
Alt 22.04.2005, 21:12   #3
cg32
Jr. Member
 
Registriert seit: 10.06.2000
Beiträge: 84


Standard

Versuch mal
$dest=ImageCreateTrueColor($width,$height);

Welche PHP Version läuft auf dem Server?
cg32 ist offline   Mit Zitat antworten
Alt 22.04.2005, 21:20   #4
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Ist ein bekanntest PHP "Problem". Ab einer bestimmten Version sollte nur mehr die Funktion imagecreatetruecolor(...) verwendet werden. Dies findest du auch in der PHP Dokumentation auf de.php.net und über Googlesuche.

Im Endeffekt brauchst du folgendes:
$img_src=imagecreatefromjpeg($g_srcfile); //Sourcefile einlesen
$img_dst=imagecreatetruecolor($g_width,$g_height); //neues Bild mit gewünschter Größe
imagecopyresized( $img_dst,$img_src,0,0,0,0, $g_width, $g_height, $o_width, $o_height); //Bild kopieren
imagejpeg($img_dst, $g_destfile, $g_imgcomp); //Bild speichern

viel Spaß!
T.dot ist offline   Mit Zitat antworten
Alt 22.04.2005, 23:34   #5
Sloter
Inventar
 
Registriert seit: 05.01.2000
Beiträge: 3.812


Standard

Eher ein Problem mit gd-1.8 und gd-2.0 und nicht ein PHP Problem.

Sloter
Sloter ist offline   Mit Zitat antworten
Alt 25.04.2005, 08:29   #6
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard

Thanks, Leute - der Tipp war goldrichtig!

____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:08 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag