CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
02.05.2016, 20:16:05
|
Anfänger
|
|
Registriert seit: May 2016
Alter: 66
Beiträge: 3
|
|
Image Resize
Hallo, ich habe mir ein Script zum Hochladen von Bildern und zum erzeugen von Thumb's geschrieben. Das funktioniert soweit auch, aber die Bildqualität von dem Thumb ist schlecht, die farben total verfälscht.
Nun die Frage voran liegt das ?
Es ändert sich daran auch nichts wenn ich bei imagejpeg den Paramter für die Qualität mit 100 angebe.
Hier mein Script.
PHP-Code:
<?php
/*
echo "<pre>";
echo "FILES:<br />";
print_r ($_FILES );
echo "</pre>";
*/
$image_pfad = "images/big/";
$thump_pfad = "images/";
if ( $_FILES['uploaddatei']['name'] <> "" )
{
// Datei wurde durch HTML-Formular hochgeladen
// und kann nun weiterverarbeitet werden
// Kontrolle, ob Dateityp zulässig ist
$zugelassenedateitypen = array("image/png", "image/jpeg", "image/gif");
if ( ! in_array( $_FILES['uploaddatei']['type'] , $zugelassenedateitypen ))
{
echo "<p>Dateitype ist NICHT zugelassen</p>";
}
else
{
if ( $_FILES['uploaddatei']['name'] <> '' )
{
if( move_uploaded_file ( $_FILES['uploaddatei']['tmp_name'] , $image_pfad. $_FILES['uploaddatei']['name'] ) )
{
echo "<p>Hochladen war erfolgreich: ";
echo '<a href="' .$image_pfad. $_FILES['uploaddatei']['name'] .'">';
echo $image_pfad. $_FILES['uploaddatei']['name'];
echo '</a>';
$src_size = getimagesize ( $image_pfad. $_FILES['uploaddatei']['name'] );
echo '<br>' . 'Bildbreite: ' . $src_size[0] . '<br>';
echo 'Bildhöhe: ' . $src_size[1] . '<br>';
echo 'Grafik-Typ: ' . $src_size[2] . '<br>';
echo 'HTML-Zeichenkette: ' . $src_size[3] . '<br>';
$src_img = imagecreatefromjpeg ( $image_pfad. $_FILES['uploaddatei']['name'] );
$dst_long_side =300;
$dst_quallity = 100;
$prefix = "kl_";
if ($src_size[0] > $src_size[1])
{
$factor = $src_size[0]/$dst_long_side;
}
else
{
$factor = $src_size[1]/$dst_long_side;
}
echo "Faktor ............." .$factor;
$dst_x = floor($src_size[0]/$factor);
$dst_y = floor($src_size[1]/$factor);
echo "Faktor x............." .$dst_x ;
echo "Faktor y............." .$dst_y;
//Bild erzeugen
$dst_img = imagecreate ( $dst_x, $dst_y );
imagecopyresized ( $dst_img , $src_img , 0 , 0 , 0 , 0 , $dst_x , $dst_y , $src_size[0], $src_size[1] );
imagejpeg($dst_img,$thump_pfad.$_FILES['uploaddatei']['name']);
echo '<img src="'.$thump_pfad.$_FILES['uploaddatei']['name'].'" style="float:'.$float.';"/>';
echo '<img src="'.$image_pfad.$_FILES['uploaddatei']['name'].'" style="float:'.$float.';"/>';
imagedestroy($src_img);
imagedestroy($dst_img);
}
else
{
echo "<p>Hochladen fehlgeschlagen !</p>";
}
} else
{
echo "<p>Dateiname ist nicht zulässig</p>";
}
}
}
function dateiname_bereinigen($dateiname)
{
// erwünschte Zeichen erhalten bzw. umschreiben
// aus allen ä wird ae, ü -> ue, ß -> ss (je nach Sprache mehr Aufwand)
// und sonst noch ein paar Dinge (ist schätzungsweise mein persönlicher Geschmach ;)
$dateiname = strtolower ( $dateiname );
$dateiname = str_replace ('"', "-", $dateiname );
$dateiname = str_replace ("'", "-", $dateiname );
$dateiname = str_replace ("*", "-", $dateiname );
$dateiname = str_replace ("ß", "ss", $dateiname );
$dateiname = str_replace ("ß", "ss", $dateiname );
$dateiname = str_replace ("ä", "ae", $dateiname );
$dateiname = str_replace ("ä", "ae", $dateiname );
$dateiname = str_replace ("ö", "oe", $dateiname );
$dateiname = str_replace ("ö", "oe", $dateiname );
$dateiname = str_replace ("ü", "ue", $dateiname );
$dateiname = str_replace ("ü", "ue", $dateiname );
$dateiname = str_replace ("Ä", "ae", $dateiname );
$dateiname = str_replace ("Ö", "oe", $dateiname );
$dateiname = str_replace ("Ü", "ue", $dateiname );
$dateiname = htmlentities ( $dateiname );
$dateiname = str_replace ("&", "und", $dateiname );
$dateiname = str_replace ("+", "und", $dateiname );
$dateiname = str_replace ("(", "-", $dateiname );
$dateiname = str_replace (")", "-", $dateiname );
$dateiname = str_replace (" ", "-", $dateiname );
$dateiname = str_replace ("\'", "-", $dateiname );
$dateiname = str_replace ("/", "-", $dateiname );
$dateiname = str_replace ("?", "-", $dateiname );
$dateiname = str_replace ("!", "-", $dateiname );
$dateiname = str_replace (":", "-", $dateiname );
$dateiname = str_replace (";", "-", $dateiname );
$dateiname = str_replace (",", "-", $dateiname );
$dateiname = str_replace ("--", "-", $dateiname );
// und nun jagen wir noch die Heilfunktion darüber
$dateiname = filter_var($dateiname, FILTER_SANITIZE_URL);
return ($dateiname);
}
|
03.05.2016, 11:41:54
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: Image Resize
nimm mal imagecreatetruecolor()
|
06.05.2016, 16:39:10
|
Anfänger
|
|
Registriert seit: May 2016
Alter: 66
Beiträge: 3
|
|
AW: Image Resize
Leider das gleiche ergebnis. Die Farben in dem verkleinerten Bild stimmen überhaupt nicht mehr.
|
09.05.2016, 13:43:57
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: Image Resize
Zeig nochmal den Code, hab's lokal probiert, ist nachvollziehbar und läuft mit truecolor.
|
10.05.2016, 11:33:25
|
Anfänger
|
|
Registriert seit: May 2016
Alter: 66
Beiträge: 3
|
|
AW: Image Resize
Hallo,
und danke für den Tip. Hat nun doch mit imagecreatetruecolor() hingehauen, hab beim ersten Versuch irgendwas verkehrt gemacht.
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:46:42 Uhr.
|