mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 12:59 Benutzername: Passwort: Auto-Login

Thema: Bildverarbeitung nach upload vom 24.02.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Bildverarbeitung nach upload
Seite: 1, 2  Weiter
Autor Nachricht
gado
Threadersteller

Dabei seit: 22.11.2005
Ort: Birkenau
Alter: -
Geschlecht: Männlich
Verfasst Sa 24.02.2007 18:54
Titel

Bildverarbeitung nach upload

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,
ich habe folgendes Problem, und zwar will ich das registrierte Besucher meiner Webseite ein Bild von sich hochladen können. Also ein kleiner Uploadscript und dann ein Script welches das Bild entgegen nimmt und ein Thumb(max 80 Berit oder Hoch) sowie ein Original (max 250px Breit oder hoch) auf dem Webserver unter der ID des Nutzers Speichert. Ich würde den Bildupload auf jpg Bilder beschränken.

Also hier mal mein Ansatz:Uploadscript
Code:
<form ENCTYPE="multipart/form-data" method="post" action="bildupload.php">
    <input type="file" name="bilddatei" size="40">
    <br>
    <input type="submit" name="upload" value="Ruff damit">
</form>

Nun die weiterverarbeitung..
Code:
<?php
$id = $_SESSION['userid'];

//nur jpg
if($_FILES['bilddatei']['type'] != 2)
   {
   //nicht groesser als 1MB
   if($_FILES['bilddatei']['size'] <  1024000)
      {
   $Grafikdatei = $_FILES['bilddatei'];

   $Bilddaten = getimagesize($Grafikdatei);

   //orginal rechnen
   $OriginalBreite = $Bilddaten[0];
   $OriginalHoehe = $Bilddaten[1];
   $vollformatBreite = 250;
   if($OriginalBreite < $vollformatBreite)
   {
      $vollformatBreite=$OriginalBreite;
   }
   $Skalierungsfaktor = $OriginalBreite/$vollformatBreite;
   $vollformatHoehe = intval($OriginalHoehe/$Skalierungsfaktor);
   $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
   $vollformatgrafik = ImageCreateTrueColor($vollformatBreite, $vollformatHoehe);
   ImageCopyResized($vollformatgrafik, $Originalgrafik, 0, 0, 0, 0, $vollformatBreite, $vollformatHoehe, $OriginalBreite, $OriginalHoehe);
   ImageJPEG($vollformatgrafik, "/img/members/$id.jpg");

   //thumb rechnen
   $OriginalBreite = $Bilddaten[0];
   $OriginalHoehe = $Bilddaten[1];
   $ThumbnailBreite = 80;
   if($OriginalBreite < $ThumbnailBreite)
   {
      $ThumbnailBreite=$OriginalBreite;
   }
   $Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
   $ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);
   $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
   $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
   ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
   ImageJPEG($Thumbnailgrafik, "/img/members/thumb_$id.jpg");
      }
  }
?>

PS: Das Script habe ich aus tausenden freien Scripten zusammengebastelt. Also nicht alleine geschrieben, weil ich einfach die Bildbefehle nicht raff.

Wenn ich den Code einbastel kommt:
Zitat:
Warning: Division by zero in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 129

Warning: Division by zero in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 130

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 133

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 134

Warning: imagejpeg(): supplied argument is not a valid Image resource in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 135

Warning: Division by zero in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 146

Warning: Division by zero in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 147

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 150

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 151

Warning: imagejpeg(): supplied argument is not a valid Image resource in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 152

Warum Au weia! ? Vielen Dank schonmal für Eure Hilfe! lg Mirko
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 24.02.2007 20:14
Titel

Re: Bildverarbeitung nach upload

Antworten mit Zitat Zum Seitenanfang

gado hat geschrieben:
Code:
Warning: Division by zero in /usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/admin_mitglied.php on line 129


steht doch hier .. irgendwas versuchst du durch 0 zu teilen & das
klappt halt nun mal nicht.


spontan frag ich mich, was du gedenkst hiermit zu tun:

gado hat geschrieben:
Code:
$Grafikdatei = $_FILES['bilddatei'];
$Bilddaten = getimagesize($Grafikdatei);


Schau dir erst mal das $_FILES Array an, und dann überarbeite
denen Code dahingehend.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
magicslider

Dabei seit: 04.02.2007
Ort: WW
Alter: -
Geschlecht: Männlich
Verfasst So 25.02.2007 10:15
Titel

Antworten mit Zitat Zum Seitenanfang

hi,

brauchst du eigentlich nur hier abzuschreiben:

http://www.php.net/manual/de/function.getimagesize.php
  View user's profile Private Nachricht senden
gado
Threadersteller

Dabei seit: 22.11.2005
Ort: Birkenau
Alter: -
Geschlecht: Männlich
Verfasst So 25.02.2007 12:38
Titel

Re: Bildverarbeitung nach upload

Antworten mit Zitat Zum Seitenanfang

dastef hat geschrieben:
spontan frag ich mich, was du gedenkst hiermit zu tun:

gado hat geschrieben:
Code:
$Grafikdatei = $_FILES['bilddatei'];
$Bilddaten = getimagesize($Grafikdatei);


Schau dir erst mal das $_FILES Array an, und dann überarbeite
denen Code dahingehend.

Hi, hiermit wollte ich der Funktion sagen wie das Bild heißt und wo es liegt das es bearbeitet werden kann
Code:
   $Grafikdatei = $_FILES['bilddatei']['tmp_name'];

selbst wenn es so heiß funktioniert es nicht, allerdings steht nun da das das Script Sicherheitsrichtlinien verletzt, und zwar sag es
Zitat:
SecureSSI: Das Script (/usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/index.php) hat versucht, ausserhalb von seinem Userverzeichniss, auf die Datei /img/members/6.jpg zuzugreifen.
Aus Sicherheitsgruenden ist dies nicht erlaubt!
Das verstehe ich nun überhaupt nicht Au weia!
lg Mirko
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
gado
Threadersteller

Dabei seit: 22.11.2005
Ort: Birkenau
Alter: -
Geschlecht: Männlich
Verfasst So 25.02.2007 12:41
Titel

Antworten mit Zitat Zum Seitenanfang

Hi, habs hinbekommen, habe folgendes gemacht
Code:
   ImageJPEG($vollformatgrafik, "/usr/export/www/vhosts/funnetwork/hosting/kljbbirkenau/img/members/$id.jpg");
allerdings muss man doch auch relative pfadangaben machen können, oder?
lg Mirko
PS: DANKE Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
cRime

Dabei seit: 07.05.2006
Ort: Berlin
Alter: 39
Geschlecht: Männlich
Verfasst So 25.02.2007 12:49
Titel

Antworten mit Zitat Zum Seitenanfang

magicslider hat geschrieben:
hi,

brauchst du eigentlich nur hier abzuschreiben:

http://www.php.net/manual/de/function.getimagesize.php



dankeschön, danach hab ich gesucht *Thumbs up!*

hab folgenden code rausgefischt:

Code:
<?php

$o_file = "bild.jpg";

function makeThumbnail($o_file, $t_ht = 100) {
   $image_info = getImageSize($o_file) ; // see EXIF for faster way
   
   switch ($image_info['mime']) {
       case 'image/gif':
           if (imagetypes() & IMG_GIF)  { // not the same as IMAGETYPE
               $o_im = imageCreateFromGIF($o_file) ;
           } else {
               $ermsg = 'GIF images are not supported<br />';
           }
           break;
       case 'image/jpeg':
           if (imagetypes() & IMG_JPG)  {
               $o_im = imageCreateFromJPEG($o_file) ;
           } else {
               $ermsg = 'JPEG images are not supported<br />';
           }
           break;
       case 'image/png':
           if (imagetypes() & IMG_PNG)  {
               $o_im = imageCreateFromPNG($o_file) ;
           } else {
               $ermsg = 'PNG images are not supported<br />';
           }
           break;
       case 'image/wbmp':
           if (imagetypes() & IMG_WBMP)  {
               $o_im = imageCreateFromWBMP($o_file) ;
           } else {
               $ermsg = 'WBMP images are not supported<br />';
           }
           break;
       default:
           $ermsg = $image_info['mime'].' images are not supported<br />';
           break;
   }
   
   if (!isset($ermsg)) {
       $o_wd = imagesx($o_im) ;
       $o_ht = imagesy($o_im) ;
       // thumbnail width = target * original width / original height
       $t_wd = round($o_wd * $t_ht / $o_ht) ;

       $t_im = imageCreateTrueColor($t_wd,$t_ht);
       
       imageCopyResampled($t_im, $o_im, 0, 0, 0, 0, $t_wd, $t_ht, $o_wd, $o_ht);
       
       imagejpeg($t_im,"thumb.gif");
       
       imageDestroy($o_im);
       imageDestroy($t_im);
   }
   return isset($ermsg)?$ermsg:NULL;
}
?>

<?

//header("Content-type: image/jpeg");
makeThumbnail("bild.gif", 100);

?>



der code wandelt einfach nur ein bild in eine andere gewünschte größe um.
die funktion kann man dann in einer schleife aufrufen um thumbs zu generieren!!!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 25.02.2007 13:11
Titel

Antworten mit Zitat Zum Seitenanfang

gado hat geschrieben:
...allerdings muss man doch auch relative pfadangaben machen können, oder?


klar, aber /img/.. ist halt nicht relativ! ./img/ wäre es, oder img/
auch - aber so wie du's geschrieben hast halt nicht. zumindest
könntest du auch über __FILE__ arbeiten und somit relative
generieren.
  View user's profile Private Nachricht senden
magicslider

Dabei seit: 04.02.2007
Ort: WW
Alter: -
Geschlecht: Männlich
Verfasst So 25.02.2007 15:34
Titel

Antworten mit Zitat Zum Seitenanfang

welchen sinn soll die erste bedingung habenl ?

Code:
if($_FILES['bilddatei']['type'] != 2)


der type ist mime, zudem gibt es verschiedene jpg mime typen ?

Zitat:

Diese Variable enthält den MIME-Type der Datei, so wie er dem Server vom Browser übermittelt worden ist. Dieser Wert kann unter Umständen nicht richtig sein, je nach Einstellung des Browsers. Beim Ermitteln des Typs von hochgeladenen Grafiken sollte stattdessen die Funktion getimagesize() verwendet werden.
  View user's profile Private Nachricht senden
 
Ähnliche Themen [Flash] Bildverarbeitung
IMG/Upload
Upload & Co
php upload problem
Bilder Upload
ftp upload online
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.