Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Bilder und PHP
Frage
Hallo,
Bei einen Comunities im Internet gibt es die Möglichkeit, nach dem Erstellen eines Accounts ein Benutzerbild hochzuladen.
Ich weiß, wie ich das mithilfe eines Formulars mache und die Bilder auf dem Server speichere.
Ist es möglich die Bilder, die vom user hochgeladen werden, zu verkleiner, umzubenennen oder es sogar automatisch zu bearbeiten?
(Mit bearbeiten meine ich, das Bild beispielsweise von farbe nach schwarz-weiß zu färben, oder in eine Ecke des Bildes die Adresse der Homepage zu schreiben.)
Ich hoffe mir kann jemand helfen!
Mfg. rotte
Antwort 1 von MixMax
entweder du lädst alle bilder runter und machst das selber per software (z.B. Batchverarbeitung in Irfanview)
oder es geht nicht ohne serverscripts...
du könntest das Bild natürlich noch mit Text überlegen indem du per HTML einen Layer über das Bild legst - das kann aber bei manchen Browsern dann zu falschdarstellung der ganzen Seite mit Bild führen.
oder es geht nicht ohne serverscripts...
du könntest das Bild natürlich noch mit Text überlegen indem du per HTML einen Layer über das Bild legst - das kann aber bei manchen Browsern dann zu falschdarstellung der ganzen Seite mit Bild führen.
Antwort 2 von Nessus
Hi,
Serverseitig bietet PHP einige Möglichkeiten.
Ich poste einfach mal ein Script das ich mal vor einiger Zeit erstellt hatte:
Serverseitig bietet PHP einige Möglichkeiten.
Ich poste einfach mal ein Script das ich mal vor einiger Zeit erstellt hatte:
<?php
require("./dbconn.inc.php");
$pfad="/www/Pfad/zum/imageordner/";
if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) {
move_uploaded_file($_FILES['probe']['tmp_name'], $_FILES['probe']['name']);
}
// ******** file nicht erlaubt ************
$file_ending = explode(".", $_FILES['probe']['name']);
$file_ending[1] = strtoupper($file_ending[1]);
if (!($file_ending[1] == "JPEG") && (!($file_ending[1] == "JPG")))
{
unlink($_FILES['probe']['name']);
header("Location:http://www.blabla/admin/index.php?bildup=3&bild=$BILD&ort=$ort");
die();
}
// Grafik verkleinern---------------------------------------------------------------------------- //
$tstamp = time();
$BILD = $_FILES['probe']['name'];
$test =time();
$BILD1 = "$pfad/$ort/$test$BILD";
$quali = '100';
// ---------------------------------------------------------------------------- //
function bild_resize($altes_bild, $neues_bild, $stufe, $quali) {
//Bildbreite
$bildbreite =400;
// altes Bild
$im1 = imageCreateFromJPEG($altes_bild);
$bb = imageSX($im1);
$hh = imageSY($im1);
$nn=$bb/$bildbreite;
$tt=$hh/$nn;
// neues Bild
$im2 = ImageCreateTrueColor($bildbreite, $tt );
imagecopyresized($im2, $im1, 0, 0, 0, 0, $bildbreite,$tt, $bb, $hh);
// bild erstellen
$rr= $tt-10;
imagettftext($im2, 10, 0, 100, $rr, $font_c, "./fonts/arial.ttf", "text fürs bild");
imagejpeg ($im2, $neues_bild, $quali);
// speicher freigeben
imageDestroy($im1);
imageDestroy($im2);
}
bild_resize($BILD, $BILD1, $skalierung, $quali);
//Temp löschen
unlink($_FILES['probe']['name']);
//Bildername in DB eintragen
$BILD= "$test$BILD";
mysql_connect($host,$user,$password)
or die("Abbruch: Verbindung zu '$host'"
." konnte nicht hergestellt werden.");
mysql_select_db($database)
or die("Abbruch: Datenbank '$database' konnte nicht"
." selektiert werden.<br><br>MySQL sagt: ".mysql_error());
$query = "INSERT INTO `bilder` (`ort`,`bild`) VALUES ('".$ort."','".$BILD."')";
mysql_query($query);
$sql = "INSERT INTO `infoxml` (`file`,`short`,`long`,`verzeichnis`) VALUES ('".$BILD."','".$short."','".$long."','".$ort."')";
mysql_query($sql);
//XML-Datei erstellen
$datei=fopen("$pfad$ort/info.xml","w+");
$query2= "SELECT `infoxml`.`file`, `infoxml`.`short`, `infoxml`.`long` FROM infoxml WHERE (`infoxml`.`verzeichnis` ='$ort')";
$result = @mysql_query($query2);
fputs($datei,"<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n");
fputs($datei," <photoit>\n");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
fputs($datei," <info file=\"".$row['file']."\">\n");
fputs($datei," <short>".$row['short']."</short>\n");
fputs($datei," <long>".$row['long']."</long>\n");
fputs($datei," </info>\n");
}
fputs($datei,"</photo>\n");
fclose($datei);
//XML
header("Location:http://www.blabla/admin/index.php?bildup=1&bild=$BILD&ort=$ort");
?>Antwort 3 von Nessus
Dieses kleine Programm macht folgendes:
1. Upload der Datei
2. Testen der Datei auf Gültigkeit
3. Grafik verkleinern
4. Text einfügen
5. In ein bestimmtes Verzeichnis speichern
6. Dateiname in eine Datenbank legen
7. XML-Datei mit Übergabewerten erstellen und abspeichern.
Nehme einfach raus was du benötigst.
HTH
Nessus
1. Upload der Datei
2. Testen der Datei auf Gültigkeit
3. Grafik verkleinern
4. Text einfügen
5. In ein bestimmtes Verzeichnis speichern
6. Dateiname in eine Datenbank legen
7. XML-Datei mit Übergabewerten erstellen und abspeichern.
Nehme einfach raus was du benötigst.
HTH
Nessus
Antwort 4 von rotte
Danke!
Hat mir sehr geholfen.
Hat mir sehr geholfen.

