| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Gast
Beiträge: n/a
| Hallo zusammen, ich lade Bilder auf eine WEB Seite hoch. Für die Übersicht will ich Thumbnails erstellen. Meine Thumbnails sind aber weitestgehend farblos... so wird aus dem Original: [img] http://www.saitc.de/test/20040801175353mvc00012.jpg [/img] dieses hässliche Bildchen [img] http://www.saitc.de/test/20040801175....jpg_thumb.png [/img] Mein Code dazu sieht so aus. Hat jemand eine Idee, wo ich schrauben kann, um das zu lösen? Code: //start image verkleinern
$ThumbSizeX=120;
$ThumbSizeY=120;
$ImInf = GetImageSize( $serverbildpfad );
$XSize = $ImInf[0];
$YSize = $ImInf[1];
$scalefactor = min( $ThumbSizeX / $XSize,$ThumbSizeY / $YSize );
if ($scalefactor>1) {$scalefactor=1;};
$dstImage = ImageCreate( $XSize * $scalefactor, $YSize * $scalefactor );
$farbe_body=imagecolorallocate($dstImage,222,222,222);
if (strtolower(substr($serverbildpfad,-4))==".gif"){$sourceimg=imagecreatefromgif($serverbildpfad);};
if (strtolower(substr($serverbildpfad,-4))==".jpg"){$sourceimg=imagecreatefromjpeg($serverbildpfad);};
imagecopyresized( $dstImage, $sourceimg,
0, 0, 0, 0,
$ImInf[0] * $scalefactor ,
$ImInf[1] * $scalefactor,
$ImInf[0],
$ImInf[1]);
imagepng($dstImage,$serverbildpfad."_thumb.png");
//fertig Image verkleinern
Vielen Dank. Gruß Stefan |
|
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Gast
Beiträge: n/a
| imagecreate durch imagecreatetruecolor ersetzen http://de.php.net/manual/de/function...etruecolor.php |
|
| | |
| Gast
Beiträge: n/a
| @Jason: Klasse! Ich habe zwar nicht das Beispiel übernommen (ich denke es sind nur Schönheitsunterschiede), aber ich habe 'imagecopyresampled' anstatt 'imagecopyresized' genommen... und schon sieht es gut aus [img] http://www.saitc.de/test/20040801183....jpg_thumb.png [/img] Danke Dir. Stefan |
|
| | ||
| Erfahrener Benutzer Registriert seit: 01.12.2003
Beiträge: 4.113
![]() | Zitat:
Von mir kam dann nur noch der Rest... | |
| | |
| | |
| Neuer Benutzer Registriert seit: 15.01.2004
Beiträge: 22
![]() | Meine Frage zielte eigentlich in eine andere Richtung. Die Funktion erstellt die Bilder auf der Platte und gibt das image ja nicht zurück. Blocken mit file_exists ist da evtl sinnvoll, jedoch würde ich mir da noch einen Parameter wünschen, der ein overwrite erzwingt. imagedestroy gibt den Speicher frei, der vom Bild belegt wird. $image und $new_image sind lokale Variablen der Funktion. Die Frage geht also in Richtung Garbagge-Collection. Wie behandelt PHP das? Wird der lokale Speicher unmittelbar mit Verlassen der Funktion entsorgt , dann ist imagedestroy überflüssig, oder irgendwann, dann wäre ein imagedestroy anzuraten. Falsch ist es sicher nicht. Hier mal meine geänderte Version Code: function mkthumb($img_src, // Dateiname
$img_width, // max. Größe in x-Richtung
$img_height, // max. Größe in y-Richtung
$folder_scr, // Ordner der normalen Bilder
$des_src, // Ordner der Thumbs
$quality, // Qualitaet 30 -- 100
$overwrite); // erzwingt überschreiben true/false
{
if(!file_exists($des_src."/".$img_src) || $overwrite) {
$image = imagecreatefromjpeg($folder_scr."/".$img_src);
list($src_width, $src_height) = getimagesize($folder_scr."/".$img_src);
if($src_width >= $src_height)
{
$new_image_width = $img_width;
$new_image_height = $src_height * $img_width / $src_width;
}
if($src_width < $src_height)
{
$new_image_height = $img_width;
$new_image_width = $src_width * $img_height / $src_height;
}
$new_image = imagecreatetruecolor($new_image_width, $new_image_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
imagejpeg($new_image, $des_src."/".$img_src, $quality);
// Memory freigeben
imagedestroy($image);
imagedestroy($new_image);
}
}
Gruß papalangi |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | Hi. Laut den Notes im Manual wird der Speicher nichtmal nach dem Beenden des Skriptes geleert. Ich denke mal, das ist inzwischen behoben, aber dazu fehlen mir Infos. Deshalb wohl besser mal von Hand freigeben... Basti |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Bild hochladen --&amp;gt; verkleinern --&amp;gt; in Datenbank speich | Datenbanken | 6 | 28.02.2011 06:00 | |
| Farben versaut | fyp | PHP-Fortgeschrittene | 18 | 04.04.2008 11:43 |
| Ganz einfaches Programm zum verkleinern von Bildern | Plague | Off-Topic Diskussionen | 10 | 05.11.2007 10:58 |
| RGB-Farben miteinander vergleichen, Farben aus Bild filtern | scraddy | PHP Tipps 2006 | 10 | 31.10.2006 10:16 |
| Bild verkleinern und EXIF | BaedDog | PHP-Fortgeschrittene | 7 | 18.04.2006 12:44 |
| bilder uploaden und verkleinern | PHP Tipps 2006 | 1 | 13.01.2006 00:28 | |
| Farben im IE | HTML, Usability und Barrierefreiheit | 7 | 23.09.2005 22:31 | |
| verliere Session | Sonja | PHP Tipps 2005 | 3 | 27.04.2005 09:32 |
| Bilder automatisch bei der Anzeige verkleinern. | PHP Tipps 2004 | 3 | 16.08.2004 07:27 | |
| Welcher Provider? Will Bilder uploaden und verkleinern? | PHP Tipps 2004 | 7 | 08.07.2004 16:56 | |
| 2 oder mehrere Farben nach einander anzeigen | TheSkaterFriend | PHP Tipps 2004 | 2 | 07.06.2004 20:59 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php verkleinern farbe, gd bild runterrechnen 16 farben, php imagecreatefromjpeg farben, php bei seite verlassen session destroy() |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.