php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Thumbnail Problem


 
usany
15-01-2004, 15:22 
 
Ich hab folgendes Problem um Thumbnails bei mir zu erstellen.
Ich habe auf dieser Seite ein Beispiel gefunden, wie Thumbnails erstellt werden. (Siehe http://www.php-resource.de/tutorials/read/24/1/ )

Bei diesem Beispiel wird durch folgende Variablen angegeben, dass das Thumbnail immer an der Breite angepasst wird und zwar mit dem Wert 100:


$neueBreite=100;
$neueHoehe=intval($hoehe*$neueBreite/$breite);


Nun möchte ich aber, dass das Thumbnail an der Höhe angepasst wird und zwar mit dem Wert 60. Darum habe ich das folgendermassen umgeschrieben.


$neueHoehe=60;
$neueBreite=intval($breite*$neueHoehe/$hoehe);


Nun habe ich aber das Problem, dass das Thumbnail nicht mehr schön komprimiert wird. Kennt jemand eine Lösung für dieses Problem?

 
TobiaZ
15-01-2004, 15:27 
 
ich wüsste nicht, was das mit der komprimierung zu tun haben sollte.

 
usany
15-01-2004, 15:35 
 
Im Anhang die Beispielbilder so wie sie erstellt wurden

An der Breite angepasst

 
usany
15-01-2004, 15:35 
 
An der Höhe angepasst

 
Trashar
15-01-2004, 15:36 
 
ich denk ma du hast ein kleineres bild und versuchst es mit html zu strecken.. weniger pixel = unschöneres bild

mfg

 
usany
15-01-2004, 15:36 
 
Hmmm. eigentlich nicht, schau dir mal die obigen Beispiele an.

 
TobiaZ
15-01-2004, 15:41 
 
was ist an den beispielbildern so falsch?

 
usany
15-01-2004, 15:43 
 
Also entweder sehe ich Gespenter oder ich weiss auch nicht. Aber beim kleinen Bild wird 1. ein schwarzer Rand angezeigt und 2. ist es einfach nicht so sauber wie das grosse.

 
Trashar
15-01-2004, 15:48 
 
hm also mir is der rand erst gar nicht aufgefallen gg

aber wie gesagt, weniger pixel = schlechtere quali!

setz einfach die höhe höher.. mfg

 
usany
15-01-2004, 15:49 
 
naja, das koennte eine loesung sein. Nur wenn ich dasselbe im Photoshop oder sonstirgendwo von hand mache, gehts wunderbar ;)

 
Davidaff
15-01-2004, 15:51 
 
wie ich sehe wird nur die normale gd-lib benutzt
versuchst mal mit der gd2-lib

;extension=php_gd.dll
extension=php_gd2.dll

mit gd2 solltest du besser qualität erzielen, so war es zumindest bei mir

 
Wurzel
15-01-2004, 15:58 
 
wenn mich meine alten augen nicht trügen, hast du da einen streifen von
1 pixel .... das würde ich mal auf einen rundungsfehler schieben ... wenns
nicht bei allen bildern der fall ist.

gib dem neuen bild mal ne andere hintergrundfarbe, dann sollte der
streifen nicht schwarz sondern "anders" sein.

 
usany
15-01-2004, 16:01 
 
das habe ich bereits versucht ;(

 
TobiaZ
15-01-2004, 16:19 
 
mach mal höhe 129

 
usany
15-01-2004, 16:41 
 
Anhang Resultat mit Höhe=129

 
gonzomx
19-02-2004, 23:29 
 
Hab da auch mal ne Frage. der Script funktioniert bei mir super, aber nur mit jpg Bilder. bei gif spuckt er nur ne Fehlermeldung aus... is momentan noch nicht wichtig.
viel wichtiger: er hinterlegt jedes Bild hellblau. Warum???
Bsp.:

 
Offe1
19-02-2004, 23:41 
 
Fehlermeldungen sind immer wichtig!

Offe

 
gonzomx
20-02-2004, 00:06 
 
mir ist das mit der darstellung aber erstmal wichtiger!

Der Fehler:

Fatal error: Call to undefined function: imagegif() in /www/xxx/html/tools/partner/members_profil.php on line 167

 
Offe1
20-02-2004, 00:14 
 
Ab Version 1.6 wurde die GIF-Unterstützung komplett aus der GD-Bibliothek entfernt. Diese Funktion ist also nur verfügbar, wenn Sie eine Version vor 1.6 verwenden.

Das Bild wird falsch dargestellt weil du keine GIF unterstützung hast

Offe

 
gonzomx
20-02-2004, 00:24 
 
bin da (noch nicht) so der crack, aber was ist diese GD, und kann ich das ändern

 
Offe1
20-02-2004, 00:39 
 
bin da (noch nicht) so der crack, aber was ist diese GD, und kann ich das ändern

glaube nicht so einfach.

such mal hier im Forum nach "imagegif" da gab es schon einiges dazu.

Offe

 
gonzomx
20-02-2004, 00:47 
 
wie gesagt, mit dem GIF ist momentan nicht wichtig. Das er die Bilder (JPG) so beschissen anzeigt interessiert mich viel mehr

 
Offe1
20-02-2004, 00:54 
 
Könntest du mal den Code posten?

Offe

 
gonzomx
20-02-2004, 01:00 
 
<?php
if ($bild_url != ""){
$bild_verzeichnis = WebOut($row1[bild_verzeichnis]);
$bildpfad = "pictures/";
// echo ("\n<table width='236' cellspacing='2' cellpadding='2' border='0' align='center'>\n<tr><td align='center'><img src='$bildpfad'></tr></td>\n</table><br><br>\n");
}
else echo ("&nbsp;&nbsp;Kein&nbsp;Bild&nbsp;veröffentlicht&nbsp;&nbsp;<br><br><br><br>");
?>


<?php

$PicPathIn = $bildpfad;
$PicPathOut="/tools/partner/pictures/out/";

// Orginalbild
$bild=$bild_url;

// Bilddaten ermitteln
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=200;
$neueHoehe=intval($hoehe*$neueBreite/$breite);

if($size[2]==1) {
// GIF
$altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
imageGIF($neuesBild,"www/xxx/html" . "$PicPathOut"."TN"."$bild");
}

if($size[2]==2) {
// JPG

$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
// Color start
for($a=0;$a<imagecolorstotal ($altesBild);$a++)
{
$color = ImageColorsForIndex($altesBild,$i);
$R=.255 * ($color['red'])+ .255 * ($color['green'])+ .255 * ($color['blue']);
$G=.255 * ($color['red'])+ .255 * ($color['green'])+ .255 * ($color['blue']);
$B=.255 * ($color['red'])+ .255 * ($color['green'])+ .255 * ($color['blue']);
ImageColorSet($altesBild, $a, $R, $G, $B);
}
// Color end
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"/www/xxx/html" . "$PicPathOut"."TN"."$bild");
}

if($size[2]==3) {
// PNG
$altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImagePNG($neuesBild,"/www/xxx/html" . "$PicPathOut"."TN"."$bild");
}

echo "Altes Bild:<BR>";
echo "<IMG SRC=\"$PicPathIn$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\"><BR><BR>";
echo "Neues Bild:<BR>";
$Thumbnail=$PicPathOut."TN".$bild;
echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">";

?>

 
gonzomx
20-02-2004, 01:01 
 
alles zwischen dem //color start und // ende hat keine wirkung!

 
Wurzel
20-02-2004, 10:28 
 
nimm mal imagecreatetruecolor()

 
gonzomx
20-02-2004, 18:15 
 
jo... Es klappt!!! mega geil. Danke

- -

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