PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
hilfe bei bildupload script
Beitrag
<blockquote data-quote="4fox" data-source="post: 1127591" data-attributes="member: 207958"><p>hallo kann mir mal bitte jemand helfen das folgende script (hab ich von einem freund bekommen) so umzuschreiben, dass 3 versionen des hinaufgeladenen bildes gespeichert werden</p><p>1. version: originalgröße,</p><p>2. version: bild das auf eine breite von 300 pixel skaliert wird</p><p>und </p><p>3. version: bild das auf eine breite von 100 pixel skaliert wird</p><p></p><p>[PHP]<form name="upload" action="bild_hinzu.php" method="post" enctype="multipart/form-data" onsubmit="return chkUpload(); completeBild()"></p><p> Datei: <input type="file" name="file" size="30"></p><p> <input type="submit" name="upload" value="Hochladen"></p><p>&nbsp;</p><p> <?php</p><p></p><p> if (!empty($_POST['upload'])) {</p><p> //if (upload_file($_FILES['file']['tmp_name'],$_FILES['file']['name'])==true) echo "Datei erfolgreich hochgeladen!<br>";</p><p> if(move_uploaded_file($_FILES['file']['tmp_name'],"./images/Angebot_der_Woche/".$_FILES['file']['name'])) echo "<br><br><b><i>Datei ".$_FILES['file']['name']." erfolgreich hochgeladen! Die URL lautet:<br><br>http://www.meineseite.at/Images/",$_FILES['file']['name'],"</i></b>";</p><p> else echo "<b><i><font color='#FF0000'>Es ist ein Fehler aufgetreten. Datei nicht hochgeladen!</font></i></b>";</p><p> }</p><p>?></p><p><?php</p><p>if (!($_POST['upload'] == ""))</p><p>{</p><p></p><p># php-Labor: Bild skalieren </p><p># Fehlerbericht anschalten:</p><p>error_reporting(E_ALL);</p><p></p><p> # gd-version ermitteln fuer jegliche php-version</p><p> # ab php 4.3 geht es einfacher mit gd_info</p><p> # dazu: puffer einschalten</p><p> ob_start();</p><p> # teil der phpinfo laden</p><p> phpinfo(8);</p><p> $info=ob_get_contents();</p><p> # puffer loeschen und beenden</p><p> ob_end_clean();</p><p> # reststring hinter gd version finden</p><p> $info=stristr($info, 'gd version');</p><p> # suche nach dezimalzahl</p><p> preg_match('/\d/', $info, $gd);</p><p> # da steht sie jetzt, die gdversion:</p><p> $gdversion=$gd[0];</p><p> # info und gd loeschen</p><p> unset ($info);</p><p> unset ($gd);</p><p> </p><p># Bildgroesse einlesen oder selbst festlegen:</p><p>$horizontal=300;</p><p>if(isset($_GET['x'])) {</p><p> $h=$_GET['x'];</p><p> # Groesse begrenzen:</p><p> if (($h >= 20) AND ($h <=1000)) {</p><p> $horizontal=$h;</p><p> } </p><p>}</p><p>$vertikal = 200;</p><p>if(isset($_GET['y'])) {</p><p> //$v=$_GET['y'];</p><p> # Groesse begrenzen:</p><p> if (($v >= 20) AND ($v <=1000)) {</p><p> $vertikal=$v;</p><p> } </p><p>}</p><p># Der Modus legt fest, ob das Bild verzerrt</p><p># werden darf oder nicht. 1 ist unverzerrt.</p><p># Da gibt es dann unter Umstaenden einen</p><p># nicht besonders huebschen Rand, wenn das</p><p># Verhaeltnis von Hoehe zu Breite nicht passt.</p><p># Mit Modus 2 wird weder verzerrt noch</p><p># bleibt ein Rand, dafuer wird die vorgegebene</p><p># Bildgroesse ueberschrieben.</p><p></p><p>$mod = 3; </p><p>if(isset($_GET['modus'])) {</p><p> $modus=$_GET['modus'];</p><p> # eingabe ueberpruefen:</p><p> if (($modus == 0) OR ($modus ==1) OR ($modus ==2)) {</p><p> $mod=$modus;</p><p> } </p><p>}</p><p></p><p># Fuer Modus=2 den Anteil festlegen.</p><p># Das ist demzufolge der Modus des</p><p># stufenlosen unverzerrten Vergroesserns</p><p>$anteil = 1.0; </p><p>if(isset($_GET['ant'])) {</p><p> $ant=$_GET['ant'];</p><p> # eingabe ueberpruefen:</p><p> if (($ant >= 0.1) AND ($ant <=10.0)) {</p><p> $anteil=$ant;</p><p> } </p><p>}</p><p></p><p># Wir laden ein Bild von der Festplatte.</p><p># Im array imininfo stehen interessante Informationen</p><p># ueber das Bild. Im Element 3 steht auch noch</p><p># drin, um welchen Bildtyp es sich handelt.</p><p>$ms="./Images/".$_FILES['file']['name'];</p><p>$imininfo = GetImageSize ($ms);</p><p>$x2=$imininfo[0];</p><p>$y2=$imininfo[1];</p><p></p><p>$imin = ImageCreateFromJPEG ($ms);</p><p></p><p></p><p></p><p>if ($mod==2) {</p><p> $horizontal=round($x2*$anteil);</p><p> $vertikal=round($y2*$anteil);</p><p> $mod=0;</p><p>}</p><p></p><p></p><p># Bild wenn moeglich im Truecolorformat erzeugen.</p><p># Das muss man bei neuerem php/gd nehmen,</p><p># um brauchbar Bilder zu skalieren,</p><p># wie auch einige hier verwendete</p><p># Funktionen. Mit verwandten Funktionen</p><p># funktioniert es aber aehnlich bei</p><p># aelterem php/gd, siehe unten </p><p></p><p>if ($gdversion >=2) {</p><p>$im = imagecreatetruecolor($horizontal, $vertikal); </p><p>} else {</p><p>$im = imagecreate($horizontal, $vertikal); </p><p>}</p><p></p><p></p><p># Werte fuer den simplen Fall vorgeben:</p><p>$x0=0;</p><p>$y0=0;</p><p>$xw=$horizontal;</p><p>$yw=$vertikal;</p><p></p><p></p><p># und jetzt gucken wir, ob und wie wir </p><p># groesser oder kleiner machen wollen</p><p># wenn der komplizierte Fall ohne </p><p># Verzerrung und mit Rand vorliegt.</p><p></p><p>if ($mod==1){</p><p></p><p> $skalh=$horizontal/$x2;</p><p> $skalv=$vertikal/$y2;</p><p></p><p> if ($skalh < $skalv) {</p><p></p><p> $y0=round(($vertikal-$y2*$skalh)/2);</p><p> $x0=0;</p><p> $xw=$horizontal;</p><p> $yw=round($y2*$skalh);</p><p></p><p> } elseif ($skalh > $skalv) {</p><p></p><p> $x0=round(($horizontal-$x2*$skalv)/2);</p><p> $y0=0;</p><p> $xw=round($x2*$skalv);</p><p> $yw=$vertikal;</p><p></p><p> }</p><p></p><p> # wir versuchen fuer den in diesem Fall vorhandenen</p><p> # Rand eine eingermassen brauchbare Farbe zu ermitteln,</p><p> # was man natuerlich auch schlauer versuchen kann:</p><p></p><p> $ci = imagecolorat($imin, 1, $y2-1); </p><p> $ct = imagecolorsforindex($imin, $ci); </p><p> $cs = ImageColorAllocate($im,$ct["red"],$ct["green"],$ct["blue"]); </p><p></p><p> imagefill ($im, 1, 1, $cs);</p><p></p><p></p><p>}</p><p></p><p># Bild skalieren:</p><p></p><p>if ($gdversion >=2) {</p><p>imagecopyresampled ($im, $imin, $x0, $y0, 0, 0, $xw, $yw, $x2, $y2);</p><p>} else {</p><p>imagecopyresized ($im, $imin, $x0, $y0, 0, 0, $xw, $yw, $x2, $y2);</p><p>}</p><p></p><p># header senden</p><p># Header("Content-type: image/png");</p><p></p><p># Bild raushauen </p><p># ImagePNG($im);</p><p></p><p># es ginge auch alternativ:</p><p>#Header("Content-type: image/jpeg");</p><p>#ImageJPEG($im);</p><p></p><p># oder abspeichern als JPEG:</p><p>$file="./Images/".$_FILES['file']['name'];</p><p>ImageJPEG($im, $file);</p><p></p><p></p><p># vorsichtshalber Speicher leeren und Bearbeitung beenden:</p><p>imagedestroy ($im);</p><p>exit;</p><p>}</p><p>?></p><p></form><br />[/PHP]</p><p></p><p>wäre echt total froh wenn mir jemand helfen könnte</p></blockquote><p></p>
[QUOTE="4fox, post: 1127591, member: 207958"] hallo kann mir mal bitte jemand helfen das folgende script (hab ich von einem freund bekommen) so umzuschreiben, dass 3 versionen des hinaufgeladenen bildes gespeichert werden 1. version: originalgröße, 2. version: bild das auf eine breite von 300 pixel skaliert wird und 3. version: bild das auf eine breite von 100 pixel skaliert wird [PHP]<form name="upload" action="bild_hinzu.php" method="post" enctype="multipart/form-data" onsubmit="return chkUpload(); completeBild()"> Datei: <input type="file" name="file" size="30"> <input type="submit" name="upload" value="Hochladen"> <?php if (!empty($_POST['upload'])) { //if (upload_file($_FILES['file']['tmp_name'],$_FILES['file']['name'])==true) echo "Datei erfolgreich hochgeladen!<br>"; if(move_uploaded_file($_FILES['file']['tmp_name'],"./images/Angebot_der_Woche/".$_FILES['file']['name'])) echo "<br><br><b><i>Datei ".$_FILES['file']['name']." erfolgreich hochgeladen! Die URL lautet:<br><br>http://www.meineseite.at/Images/",$_FILES['file']['name'],"</i></b>"; else echo "<b><i><font color='#FF0000'>Es ist ein Fehler aufgetreten. Datei nicht hochgeladen!</font></i></b>"; } ?> <?php if (!($_POST['upload'] == "")) { # php-Labor: Bild skalieren # Fehlerbericht anschalten: error_reporting(E_ALL); # gd-version ermitteln fuer jegliche php-version # ab php 4.3 geht es einfacher mit gd_info # dazu: puffer einschalten ob_start(); # teil der phpinfo laden phpinfo(8); $info=ob_get_contents(); # puffer loeschen und beenden ob_end_clean(); # reststring hinter gd version finden $info=stristr($info, 'gd version'); # suche nach dezimalzahl preg_match('/\d/', $info, $gd); # da steht sie jetzt, die gdversion: $gdversion=$gd[0]; # info und gd loeschen unset ($info); unset ($gd); # Bildgroesse einlesen oder selbst festlegen: $horizontal=300; if(isset($_GET['x'])) { $h=$_GET['x']; # Groesse begrenzen: if (($h >= 20) AND ($h <=1000)) { $horizontal=$h; } } $vertikal = 200; if(isset($_GET['y'])) { //$v=$_GET['y']; # Groesse begrenzen: if (($v >= 20) AND ($v <=1000)) { $vertikal=$v; } } # Der Modus legt fest, ob das Bild verzerrt # werden darf oder nicht. 1 ist unverzerrt. # Da gibt es dann unter Umstaenden einen # nicht besonders huebschen Rand, wenn das # Verhaeltnis von Hoehe zu Breite nicht passt. # Mit Modus 2 wird weder verzerrt noch # bleibt ein Rand, dafuer wird die vorgegebene # Bildgroesse ueberschrieben. $mod = 3; if(isset($_GET['modus'])) { $modus=$_GET['modus']; # eingabe ueberpruefen: if (($modus == 0) OR ($modus ==1) OR ($modus ==2)) { $mod=$modus; } } # Fuer Modus=2 den Anteil festlegen. # Das ist demzufolge der Modus des # stufenlosen unverzerrten Vergroesserns $anteil = 1.0; if(isset($_GET['ant'])) { $ant=$_GET['ant']; # eingabe ueberpruefen: if (($ant >= 0.1) AND ($ant <=10.0)) { $anteil=$ant; } } # Wir laden ein Bild von der Festplatte. # Im array imininfo stehen interessante Informationen # ueber das Bild. Im Element 3 steht auch noch # drin, um welchen Bildtyp es sich handelt. $ms="./Images/".$_FILES['file']['name']; $imininfo = GetImageSize ($ms); $x2=$imininfo[0]; $y2=$imininfo[1]; $imin = ImageCreateFromJPEG ($ms); if ($mod==2) { $horizontal=round($x2*$anteil); $vertikal=round($y2*$anteil); $mod=0; } # Bild wenn moeglich im Truecolorformat erzeugen. # Das muss man bei neuerem php/gd nehmen, # um brauchbar Bilder zu skalieren, # wie auch einige hier verwendete # Funktionen. Mit verwandten Funktionen # funktioniert es aber aehnlich bei # aelterem php/gd, siehe unten if ($gdversion >=2) { $im = imagecreatetruecolor($horizontal, $vertikal); } else { $im = imagecreate($horizontal, $vertikal); } # Werte fuer den simplen Fall vorgeben: $x0=0; $y0=0; $xw=$horizontal; $yw=$vertikal; # und jetzt gucken wir, ob und wie wir # groesser oder kleiner machen wollen # wenn der komplizierte Fall ohne # Verzerrung und mit Rand vorliegt. if ($mod==1){ $skalh=$horizontal/$x2; $skalv=$vertikal/$y2; if ($skalh < $skalv) { $y0=round(($vertikal-$y2*$skalh)/2); $x0=0; $xw=$horizontal; $yw=round($y2*$skalh); } elseif ($skalh > $skalv) { $x0=round(($horizontal-$x2*$skalv)/2); $y0=0; $xw=round($x2*$skalv); $yw=$vertikal; } # wir versuchen fuer den in diesem Fall vorhandenen # Rand eine eingermassen brauchbare Farbe zu ermitteln, # was man natuerlich auch schlauer versuchen kann: $ci = imagecolorat($imin, 1, $y2-1); $ct = imagecolorsforindex($imin, $ci); $cs = ImageColorAllocate($im,$ct["red"],$ct["green"],$ct["blue"]); imagefill ($im, 1, 1, $cs); } # Bild skalieren: if ($gdversion >=2) { imagecopyresampled ($im, $imin, $x0, $y0, 0, 0, $xw, $yw, $x2, $y2); } else { imagecopyresized ($im, $imin, $x0, $y0, 0, 0, $xw, $yw, $x2, $y2); } # header senden # Header("Content-type: image/png"); # Bild raushauen # ImagePNG($im); # es ginge auch alternativ: #Header("Content-type: image/jpeg"); #ImageJPEG($im); # oder abspeichern als JPEG: $file="./Images/".$_FILES['file']['name']; ImageJPEG($im, $file); # vorsichtshalber Speicher leeren und Bearbeitung beenden: imagedestroy ($im); exit; } ?> </form><br />[/PHP] wäre echt total froh wenn mir jemand helfen könnte [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 5, ▼ = 2 und ■ = 7, was ist ▲ × ▼ + ■?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
hilfe bei bildupload script
Oben