php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.10.2009, 09:47  
Neuer Benutzer
 
Registriert seit: 27.08.2009
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Kölner befindet sich auf einem aufstrebenden Ast
Standard Foto verkleinerung per PHP

Hallo Gemeinde,

ich suche verzweifelt einen PHP Script, darf auch was kosten, wo ich ein oder sogar mehrere Bilder hochladen kann (Uploadtool sollte enthalten sein, will nicht, das man hier erst per FTP hochladen muss) die z.B. 2048 x 1024 Pixel gross sind und per Aussuchmöglichkeit das oder die Fotos auf z.B 800 x 600 verkleinert und dann wieder zum download bereitstellt.

Soll keine Software sein, da in diesem Fall die User keine Ap installieren dürfen und es daher zentral auf dem Server / Webserver gemacht werden muss.

google mir da einen Ast nach und finde eigentlich nur Mist oder Galerien die ich nicht brauchen kann.

Wenn da mal wer einen Tipp hat, so wäre ich dankbar.

Grus

PS: Kann nicht programmieren, aber einbinden und bitte daher keine Codes oder so, da kann ich nix mit anfangen ausser mal drüber sehen.

Geändert von Kölner (07.10.2009 um 10:02 Uhr). Grund: nachtrag
Kölner ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.10.2009, 15:41  
Neuer Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 26
Transistorcrash befindet sich auf einem aufstrebenden Ast
Standard

PHP & jQuery image upload and crop | WebMotionUK

Hilft das weiter?
Transistorcrash ist offline  
Alt 08.10.2009, 09:24  
Neuer Benutzer
 
Registriert seit: 27.08.2009
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Kölner befindet sich auf einem aufstrebenden Ast
Standard Nicht wirklich

Hallo und danke dir erstmal,

leider ist das nicht ganz was ich suche.


Kurze Erklärung

Kunde hat Bild, will es per Mail versenden, aber zu fett für den Mailer,
also auf WebDisk speichern (Virtuelle Festplatte ist im System drin) Button drücken,
Frage kommt welche Datei soll es sein, raussuchen, Dimension nur
noch angeben z.B. 800 x 600 Bild hochladen und wird beim hochladen auf
das eingestellte Format gebracht.

genau sowas suche ich nun schon einige Zeit, aber irgendwie bekommt das
wohl keiner auf die Reihe. Somit würde ich unzählige Anfragen wegen der Dateigrösse
und den Fehlermeldungen umgehen. Klar wäre eine lokale ap die bessere
Lösung für genau sowas, aber die User können kein Setup machen, sonst
hätte ich da was kleines gesucht..

Danke
Kölner ist offline  
Alt 08.10.2009, 19:04  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 585
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kölner Beitrag anzeigen
welche Datei soll es sein, raussuchen, Dimension nur
noch angeben z.B. 800 x 600 Bild hochladen und wird beim hochladen auf
das eingestellte Format gebracht.
imho geht das während des Hochladens gar nicht, sondern nur vorher oder nachher. Vorher soll nicht erlaubt sein, also bleibt nachher. Bau n Uploadformular mit zusätzlich zwei Feldern für die Dimensionen.
Dann n Script, das die Datei (wohl per gdlib) auf die Größe bringt.
Jedenfalls ist der Ärger da doch schon vorprogrammiert "ist ja total verzerrt", "server ist mit dem verkleinern ewig beschäftigt" etc pp.

die user sollen das so hochladen wie es ist, und die Anzeige so eines Bildes soll angepaßt werden, nicht mehr
Harry_X ist offline  
Alt 08.10.2009, 19:50  
Erfahrener Benutzer
 
Benutzerbild von Ti-Systems
 
Registriert seit: 06.10.2008
Beiträge: 240
PHP-Kenntnisse:
Fortgeschritten
Ti-Systems befindet sich auf einem aufstrebenden Ast
Ti-Systems eine Nachricht über ICQ schicken Ti-Systems eine Nachricht über MSN schicken
Standard

Hallo,
Du schreibst:

Zitat:
und per Aussuchmöglichkeit
Soll es jetzt auf einen Bereich, den man per Fadenkreuz auswählen kann verkleinert werden, bzw. zugeschnitten?
Oder soll einfach eine neue Pixelangabe per Input gemacht werden können ?

Falls das mit dem Fadenkreuz der Fall sein sollte, solltest du dich ein bisschen mit Ajax auseinander setzen. Frameworks wie Prototype mit script.aculo.us oder jQuery helfen dir bei dieser "Auswahlmöglichkeit" weiter..

Wenn letzteres der Fall sein sollte, schau dir mal dieses Scriptchen an:
NoPaste

mfg Timo
Ti-Systems ist offline  
Alt 08.10.2009, 20:02  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.072
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Harry_X Beitrag anzeigen
imho geht das während des Hochladens gar nicht, sondern nur vorher oder nachher. Vorher soll nicht erlaubt sein, also bleibt nachher. Bau n Uploadformular mit zusätzlich zwei Feldern für die Dimensionen.
Dann n Script, das die Datei (wohl per gdlib) auf die Größe bringt.
Jedenfalls ist der Ärger da doch schon vorprogrammiert "ist ja total verzerrt", "server ist mit dem verkleinern ewig beschäftigt" etc pp.

die user sollen das so hochladen wie es ist, und die Anzeige so eines Bildes soll angepaßt werden, nicht mehr
Naja ganz so ists ja nun auch nicht, ich habe mir eine Thumbnailfunktion geschrieben und diese kann beim Upload genutzt werden. Da braucht man noch nicht mal zwei Werte eingeben, sondern im Script einfach einen Wert eingeben und das rechnen übernimmt die Funktion.

Ich stelle das ganze mal rein hier (ist ja net geheim ) und der Code ist auch sehr gut kommentiert denke ich, das versteht dann jeder.

Also hier die Funktion für die Thumbs. Da brauch rein gar nichts geändert werden.
PHP-Code:
<?php
/*
*
* funktion für das erstellen von thumbnails
*
*/
if(!function_exists('thumbnail')){
 
 function 
thumbnail($img,$maximal,$thumb_order,$thumb_name){ //parameter für anwendung der function
 
  
$size getimagesize($img); //ermitteln der bilddaten, höhe,breite und dateityp
  
  //liste der ermittelten bilddaten erstellen, achtung werte
  //werden von rechts nachlinks gelsen
  
list($breite,$hoehe,$datentyp) = $size;
           
  
//ermitteln ob höhe oder breite des bildes größer sind und herunterrechnen
  
if($breite $maximal || $hoehe $maximal){
  
   
//brechnungsfaktor festlegen
   
$rechen_faktor $breite $hoehe;
   
   
//ist der faktor kleiner 1 dann neue breite errechnen
   
if($rechen_faktor 1){
   
    
$neue_breite $maximal $rechen_faktor;
    
$neue_hoehe $maximal;
   }
   
   
//ist der faktor größer oder gleich 1 dann neue höhe errechnen
   
if($rechen_faktor >= 1){
   
    
$neue_hoehe $maximal $rechen_faktor;
    
$neue_breite $maximal;
   
   }
   
   
//thumbnail mit neu errechneten werten anzeigen
   
$thumbnail imagecreatetruecolor($neue_breite,$neue_hoehe);
   
   
//bilder nach bilddatentyp ermitteln mit switch konstrukt nur auf jpg und png
   //ausgerichtet
   
switch($datentyp){
    
    case 
2:
     
$image imagecreatefromjpeg($img);
    break;
    
    case 
3:
     
$image imagecreatefrompng($img);
    break;
    
   }
//ende switch
   
   //neues bild mit allen ermittelten daten in neues verzeichnis kopieren
   
imagecopyresized($thumbnail,$image0000$neue_breite$neue_hoehe$breite$hoehe);
   
   
//neues erstelltes thumbnail nach ermittelten datentyp erstellen
   
switch($datentyp){
    
    case 
2:
     
imagejpeg($thumbnail,$thumb_order.'thumbnail_'.$thumb_name);
    break;
    
    case 
3:
     
imagepng($thumbnail,$thumb_order.'thumbnail_'.$thumb_name);
    break;
    
   }
//ende switch
   
   //rückgabewert der funfunktion
   
return 1;
   
  }
// ende der seitenrechnung
 
}//ende der funktion
}// ende prüfen ob function schon existiert
?>
Der Upload Code der sagen wir mal ganz salopp in einer upload.php Datei steht. In dem Code muss man sich halt einige Werte anpassen die dann geprüft werden, wie eben maximale Breite und maxmale Höhe die zulässig sind. Und auch maximale Dateigrüße in Kb. Aber das ist auch unter den Kommentaren noch ersichtlich.
PHP-Code:
<?php
include('function_thumb.php');
/*
*
* bild uploaden
*
*/
if(isset($_POST['upload']))
{
 
//error array initialisieren
 
$error = array();
 
 
//kompletter string der datei aus dem datei upload feld
 
$image_string $_FILES['img']['name'];
 
 
$img_kb $_FILES['img']['size']; //bildgröße des hochzuladenden bildes holen
 
$image_size 2000 1024//maximale datei größe in kb festlegen
 
 
$max_breite 1024//maximal zulässige breite des bildes festlegen
 
$max_hoehe 768//maximal zulässige höhe des bildes festlegen
 
 
$image_mase getimagesize($_FILES['img']['tmp_name']); //array bilden mit breite und höhe des bildes
 
 
$img_breite $image_mase[0]; //breite des hochzuladenden bildes holen
 
$img_hoehe $image_mase[1]; //höhe des hochzuladenden bildes holen
 
 /*
 ------------------------------------------------------------------------
  ermitteln des Dateinamens nach dem letzten im string vorkommenden
  punkt
 ------------------------------------------------------------------------
 */
 
$image_end strrchr($image_string,'.');
 
 
/*
 ------------------------------------------------------------------------
  ermitteln der zeichenlänge des strings der aus strrchr übrig
  bleibt und die dateiendung wieder spiegelt
 ------------------------------------------------------------------------
 */
 
$sub_count strlen($image_end);
 
 
/*
 ------------------------------------------------------------------------
  hier holen wir uns nun den datei namen, den brauchen wir für die 
  bevorstehende namens prüfung auf zeichenvorkommnisse
 ------------------------------------------------------------------------
 */
 
$image_name substr($image_string0, -$sub_count);
 
 
//prüfen magic_quotes on
 
if(get_magic_quotes_gpc()==&& get_magic_quotes_runtime())
 {
  
$image_name stripslashes($image_name);
  
$image_end stripslashes($image_end);
 }
 
 
//prüfen ob checkbox angehakt ist
 
if(isset($_POST['edit_ok']) !=1)
 {
  
$error['pwe_false'] = 'Vor dem ändern bitte Haken un Box setzen!';
 }
 
 
/*
 ------------------------------------------------------------------------
  whitelist endungs array für bilder
 ------------------------------------------------------------------------
 */
 
$end_arr = array('.jpg','.JPG','.jpeg','.png');
 
 
/*
 ------------------------------------------------------------------------
  bilddatei gegen die whitelist der bilderendungen checken
 ------------------------------------------------------------------------
 */
 
if(!in_array($image_end,$end_arr))
 {
  
$error['end_false'] ='Die Endung des Bildes hat ein unerwünschtes Format!';
 }
 
 
/*
 ------------------------------------------------------------------------
  prüfen des datenamens auf verbotene zeichen es dürfen nur zeichen
  a-z A-Z 0-9 . _ - vorkommen
 ------------------------------------------------------------------------
 */
 
if(!preg_match("#^([a-z0-9\._-]+)$#si",$image_name))
 {
  
$error['name_false'] ='Der Bildname enthält verbotene Zeichen!';
 }
 
 
/*
 ------------------------------------------------------------------------
  prüfen ob die breite des bildes größer als der maximal zulässige
  breitenwert ist
 ------------------------------------------------------------------------
 */
 
if($img_breite $max_breite)
 {
  
$error['breite_false'] ='das bild ist zu breit maximal '.$max_breite.' px';
 }
 
 
/*
 ------------------------------------------------------------------------
  prüfen ob die hoehe des bildes größer als der maximal zulässige
  hoehenwert ist
 ------------------------------------------------------------------------
 */
 
if($img_hoehe $max_hoehe)
 {
  
$error['hoehe_false'] ='das bild ist zu hoch maximal '.$max_hoehe.' px';
 }
 
 
/*
 ------------------------------------------------------------------------
  prüfen der maximal zulässigen kb größe des bildes
  2 MB maximal
 ------------------------------------------------------------------------
 */
 
if($img_kb $image_size)
 {
  
$error['size_false'] ='das bild ist zu groß maximal '.$image_size.' kb';
 }
 
 
//keine fehler dann uploaden und in db schreiben
 
if(!$error)
 {  
  
//prüfen ob das bild hochgeladen wurde und dann kleines bild kopieren
  
if(!is_uploaded_file($_FILES['img']['name']))
  {
   
//upload ausführen
   
move_uploaded_file($_FILES['img']['tmp_name'],"bilder/".$_FILES['img']['name']);
   
   
$bild $_FILES['img']['name'];
   
$src ="bilder/".$_FILES['img']['name']."";
   
$thumb_order ="user/profil_bild/";
   
$maximal ="140";
   
$thumb_name $_FILES['img']['name'];
   
   
thumbnail($src,$maximal,$thumb_order,$thumb_name);
  }  
 }
}
Zum Schluss das Upload Formular was auch in der upload.php ist bzw. sein kann. Das ist selbsterklärend und bedarf keiner großen Worte.

HTML-Code:
<form action="" method="post">
 
<input type="file" name="img" />
 
<input type="submit" name="upload" value="Upload" class="prof_bt" />
 
</form> 
Ich hoffe das hilft ein wenig weiter.

Mfg litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 08.10.2009, 20:52  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 585
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

ja, sehr schön.
Aber das thumbnail erstellen bleibt dann dem Server vorbehalten, und das scheint mir dabei immer eine Art Schwachstelle zu sein. Nun, ich hab kA, wie stark die image-Funktionen sich dann auswirken, ist auch schlecht vorherzusagen.
Es gäbe u.U. noch die Möglichkeit, so ein Script lokal auszuführen mittels phpexe:
PHPExe 2.4.0 Englisch, Download bei heise
da braucht nichts zu installiert zu werden, einfach aus dem PHP/HTML-Gerödel eine exe-Datei machen,die zwar n bisken groß ausfällt dank der Lib...
sozusagen Client und Server in einer Person...
Harry_X ist offline  
Alt 09.10.2009, 09:53  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 3.891
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Mensch
Standard

Dann kannste ja gleich ein "ordentliches" Programm schreiben, in einer andere Sprache ...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 10.10.2009, 00:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Find ich immer super sinnvoll, all die 100 verschwommenen Bilder der 10-Megapixel im Upload durch die Leitung zu quetschen, um dann auf der anderen Seite Thumbnailchen zu generieren. Ein Hoch auf die DSL Flatrate.
Ganz ehrlich - mit einem gut eingerichteten Batch-Konverter ist Dein Kunde besser beraten.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 10.10.2009, 09:52  
Neuer Benutzer
 
Registriert seit: 27.08.2009
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Kölner befindet sich auf einem aufstrebenden Ast
Standard Erledigt

Hallo und danke für die rege Diskussion,

hab ein Proggi gefunden OHNE Setup, ist ne lokale Anwendung, klein,
einfach und nur eine kleine Exe die nix in die Reg. schreibt. dazu konnte
ich den Admin überzeugen dies zuzulassen. Problem ist damit gelöst.

Wer das kleine Tool haben will, einfach melden, dann sende ich es rüber...
Für Kunden einfach genug und fast schon zu kompliziert, denn nicht jeder
weis was 800x600 bedeutet...

Gruss und danke
Kölner ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Foto verkleinerungs script autofieber PHP Tipps 2009 5 18.10.2009 19:38
Scriptsuche [Erledigt] random flickr foto wordpress header tdsonline Scriptbörse 2 28.05.2009 18:35
foto anzeige autofieber PHP Tipps 2009 3 02.02.2009 10:45
[Erledigt] auf einem foto einen durchsichtigen, ausgefüllten kreis erzeugen taurus PHP Tipps 2009 7 16.01.2009 10:06
Foto upload Problem waldsee PHP Tipps 2009 2 13.01.2009 17:31
[Erledigt] Problem mit Foto Upload von Hochformat auf Querformat KokosDesign PHP Tipps 2008 5 22.07.2008 16:52
foto blogging snatch-ic Off-Topic Diskussionen 3 02.06.2006 02:22
HILFE, upload scirpt mit verkleinerung von bildern wiegia086 PHP Tipps 2006 8 16.03.2006 14:32
Foto Album Trash 2 05.03.2006 14:56
[Erledigt] Foto Galerie Uploadanzeige? PHP-Fortgeschrittene 10 07.02.2006 15:49
[Erledigt] Foto proportional verkleinern / vergrößern PHP Tipps 2005-2 1 15.10.2005 15:50
thumbnailscript spuckt nur 1 foto aus PHP Tipps 2005 16 17.03.2005 20:48
Verkleinerung: jpg/gif Creativ PHP-Fortgeschrittene 2 05.02.2005 20:03
Foto Gallery Script Beitragsarchiv 1 30.01.2005 11:10
hilfe! für ein tool um ein foto zu laden, wer kann das?? PHP-Fortgeschrittene 1 06.07.2004 10:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-einsteiger/59722-foto-verkleinerung-per-php.html, grösse eines bildes herunterrechnen php, php bilder nach bilddatentyp ermitteln mit switch konstrukt, fotoverkleinerung im stapel, php foto upload verkleinern in 2 grössen, bild px verkleinern php, fotoverkleinerung tool, getimagesize bild upload, jquery bild uploaden und verkleinern, jquery bild verkleinern, php jquery bild verkleinern, bildupload $max size = 2*1024*1024; php wie berechnen, fotoverkleinerung wenn zu viel megapixel, jquery bilder verkleinern thumbnail, php bild skalieren breite vorgeben, bild verkleinern programm php, php jpg verkleinern, foto per php verkleinern, php bilder nach bild datentyp ermitteln mit switch konstrukt, php foto hochladen

Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum