Hi,
Kenn mich nicht so gut mit PHP aus, kann gerade mal die Scripts vernünftig einbinden, jetzt mein Problem:
habe im Netz ein einfaches Bild-Upload script gefunden, welches die Bilder auf die richtige Größe skaliert. Das Script funktionier super, allerdings wird nur eine Maximale Breite festgelegt. Sieht n bisschen blöd aus, bei Bildern im Hochformat, da die Höhe dann wieder den Rahmen sprengt. Also wie kann ich hier noch zusätzlich die maximal Höhe des Bildes definieren?
p.s: wo wir schonmal dabei sind: Hat noch jemand ne idee, wie ich das Verzeichnis bestimmen kann, in das die Bilder geladen werden? Bis jetzt lädt der die genau dahin hoch, wo das Script liegt...
MFG, Alex
Kenn mich nicht so gut mit PHP aus, kann gerade mal die Scripts vernünftig einbinden, jetzt mein Problem:
habe im Netz ein einfaches Bild-Upload script gefunden, welches die Bilder auf die richtige Größe skaliert. Das Script funktionier super, allerdings wird nur eine Maximale Breite festgelegt. Sieht n bisschen blöd aus, bei Bildern im Hochformat, da die Höhe dann wieder den Rahmen sprengt. Also wie kann ich hier noch zusätzlich die maximal Höhe des Bildes definieren?
PHP-Code:
<?php
// Funktion zum Thumbnail erstellen
function BildScale( $Grafikdatei, $ThumbnailBreite ) {
$Bilddaten = getimagesize( $Grafikdatei );
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
if( $OriginalBreite < $ThumbnailBreite ) {
$ThumbnailBreite = $OriginalBreite;
}
$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval( $OriginalHoehe/$Skalierungsfaktor );
$Originalgrafik = imagecreatefromjpeg( $Grafikdatei );
$Thumbnailgrafik = imagecreatetruecolor( $ThumbnailBreite, $ThumbnailHoehe );
imagecopyresampled( $Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe );
imagejpeg( $Thumbnailgrafik, $Grafikdatei, 90 );
imagedestroy( $Originalgrafik );
imagedestroy( $Thumbnailgrafik );
}
// Wenn das Formular abgeschickt wurde
if( isset( $_POST['submit'] ) ) {
$umaskold = umask( 0 );
// Falls die Datei groesser 0 Byte ist
if( $_FILES['bild']['size'] > 0 ) {
// Datei verschieben und bei Misserfolg Fehler ausgeben
if( !@move_uploaded_file( $_FILES['bild']['tmp_name'], $_FILES['bild']['name'] ) ) {
echo 'Konnte die Datei nicht kopieren!';
} else {
// Bildgroesse aendern (500px maximal Breite)
BildScale( $_FILES['bild']['name'], 100);
}
// CHMOD setzen damit man das Bild per FTP loeschen kann
@chmod( $_FILES['bild']['name'], 0755 );
@chmod( "t_" .$_FILES['bild']['name'], 0755 );
}
umask( $umaskold );
}
?>
MFG, Alex
Kommentar