php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.04.2006, 20:28  
Neuer Benutzer
 
Registriert seit: 07.11.2005
Beiträge: 27
BaedDog
BaedDog eine Nachricht über ICQ schicken
Standard Bild verkleinern und EXIF

N'Abend,
ich hoffe es ist dieses mal im richtigen Forum.
Ich bin gerade dabei eine Bildergalerie zu schreiben, und habe dabei folgendes Problem:
Ich habe eine Funktion mit der ich ein Bild verkleinern kann, nur leider werden durch das verkleinern des Bildes alle EXIF-Dateiinformationen entfernt. Wie kann ich die trotz verkleinern beibehalten?

Hier meine Funktion
PHP-Code:
  var $types = array(=> "GIF"=> "JPEG"=> "PNG"); 

  function 
resize($new_width$new_height$sourcefile$destfile$quality$replace=0) {  
      
$gd_version     $this->gd_version();            
            
$this->error     "";

            if (
$replace==&& $sourcefile != $destfile)
                @
unlink($destfile);
                                                                                  
      if (
$replace==&& file_exists($destfile)) {
        
$this->error .= "resize_1";
        return 
FALSE;
        }
      elseif (
$new_width<=|| $new_height<=0) {      
        
$this->error .= "resize_2";
        return 
FALSE;
        }                
      elseif (!
file_exists($sourcefile)) {
        
$this->error .= "resize_3";
        return 
FALSE;
        }
      else {
        
$img_info   = @GetImageSize($sourcefile);
        
        if (
$img_info[0] > $new_width && $img_info[1] >$new_height) {        
          
$newprop    $this->makeRatio($img_info[0],$img_info[1],$new_width,$new_height);
          
$new_width  $newprop['width'];
          
$new_height $newprop['height'];        
                 
          
$image_create_handle "ImageCreateFrom".$this->types[$img_info[2]];        
                                  
          if (
$gd_version >=2)  
            
$img_dst ImageCreateTrueColor($new_width$new_height);
          else
            
$img_dst ImageCreate($new_width$new_height);
                  
          if (
$img_src $image_create_handle($sourcefile)) {
            if (
$gd_version >=2
              
ImageCopyResampled($img_dst$img_src0000$new_width$new_heightImageSX($img_src), ImageSY($img_src));         
            else 
              
ImageCopyResized($img_dst$img_src0000$new_width$new_heightImageSX($img_src), ImageSY($img_src));          
            
$image_handle "Image".$this->types[$img_info[2]];
            
$image_handle($img_dst$destfile$quality);
            
ImageDestroy($img_src);
            
ImageDestroy($img_dst);
          }
    
          if (
file_exists($destfile))
            return 
TRUE;
          else {
            
$this->error .= "resize_4";
            return 
FALSE;
            }
          }
        else
          return 
FALSE;
        }
    } 
BaedDog ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 10.04.2006, 17:57  
Neuer Benutzer
 
Registriert seit: 07.11.2005
Beiträge: 27
BaedDog
BaedDog eine Nachricht über ICQ schicken
Standard

Keiner bisher 'ne Idee? Oder kennt jemand ein Codeschnipsel oder ähnliches wie man Bilder verkleinern kann OHNE die EXIF-Daten zu verlieren.
__________________
/(bb|[^b]{2})/

BaedDog ist offline   Mit Zitat antworten
Alt 10.04.2006, 18:08  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

In dem du sie in die Datenbank speicherst und von dort aus aufrufst anstatt über die veränderte Datei.
Zergling-new ist offline   Mit Zitat antworten
Alt 10.04.2006, 21:57  
Neuer Benutzer
 
Registriert seit: 07.11.2005
Beiträge: 27
BaedDog
BaedDog eine Nachricht über ICQ schicken
Standard

Das wäre zwar eine Möglichkeit, aber ich möchte die Bilder später auch noch weiter verwenden, z.B. möchte ich die zum Download anbieten und da wären die EXIF-Daten doch sehr brauchbar.
__________________
/(bb|[^b]{2})/

BaedDog ist offline   Mit Zitat antworten
Alt 10.04.2006, 23:17  
Gast
 
Beiträge: n/a
Standard

Google, PEAR oder einschlägige Skriptarchive helfen Dir nicht weiter?

Für mich sieht der erste Treffer bei Google doch gleich nach dem aus, was
Du suchst:
http://pel.sourceforge.net/
  Mit Zitat antworten
Alt 11.04.2006, 17:22  
Neuer Benutzer
 
Registriert seit: 07.11.2005
Beiträge: 27
BaedDog
BaedDog eine Nachricht über ICQ schicken
Standard

Hab mir mal PEL runtergeladen, aber kann es leider nicht verwenden, da ich nur PHP4 auf dem Server nutzen kann.

Gibt es alternativ evtl. eine Funktion mit der man ein Bild verkleinern kann, ohne ein neues Bild zu erschaffen? Weil in meiner Funktion wird das verkleinerte Bild ja in einem neuen Bild eingefügt und gespeichert.


EDIT:
Ich habe mich gerade nochmal durch ein paar andere Foren und Seiten gelesen und musste feststellen das es an der GD-Lib liegt, da diese scheinbar die Bilder nur oberflächlich bearbeitet. Wie sieht es mit anderen Gfx-Bibliotheken, wie z.B. ImageMagick aus. Können die was mit EXIF anfangen?
__________________
/(bb|[^b]{2})/

BaedDog ist offline   Mit Zitat antworten
Alt 15.04.2006, 14:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
nur leider werden durch das verkleinern des Bildes alle EXIF-Dateiinformationen entfernt
Richtig, da das Bild praktisch neu erstellt wird.
Irgendwo gibt es eine Klasse, welche diese Daten wieder eine JPEG-Bild hinzufügt, aber ob sich der Aufwand auch lohnt ?

Prüfen ob EXIF vorhanden ist, falls ja seperat speichern.
  Mit Zitat antworten
Alt 18.04.2006, 12:44  
Gast
 
Beiträge: n/a
Standard

das projekt gallery.sf.net nutzt dazu externe tools - ich würde auf diese ebenfalls zurückgreifen um bilder zu verkleinern.

Oder anderer ansatz: suche ein programm womit du sie wieder schreiben kannst.
sprich verkleinern, speichern , exif neu schreiben.
  Mit Zitat antworten
Antwort


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
[Erledigt] Bild hochladen --&amp;amp;gt; verkleinern --&amp;amp;gt; in Datenbank speich Datenbanken 6 28.02.2011 06:00
[Erledigt] Bild verkleinern PHP Tipps 2004 3 23.03.2009 17:19
Bild (beim Hochladen) verkleinern Heizkessel PHP Tipps 2008 1 27.01.2008 21:33
[Erledigt] Bild verkleinern vor Upload PHP Tipps 2007 10 27.11.2007 22:02
bilder verkleinern 022.9 PHP Tipps 2006 4 26.10.2006 08:23
Bild verkleinern dimitri PHP Tipps 2006 2 15.03.2006 08:21
Bild verkleinern ohne File PHP Tipps 2006 6 13.02.2006 17:00
[Erledigt] Bild mit clip:rect verkleinern und per hover wieder normal HTML, Usability und Barrierefreiheit 3 21.12.2005 14:54
1001 Bild auf einmal verkleinern? dethlef14 PHP Tipps 2005-2 10 18.10.2005 14:58
[Erledigt] Bild aus Datei in Bild einfügen PHP Tipps 2005-2 1 07.08.2005 23:36
[PHP«Image] Bild in ein anderes Bild einsetzen PHP Tipps 2005-2 4 07.08.2005 19:39
Bild verkleinern + upgeloadete Datei PHP Tipps 2005 3 07.03.2005 13:24
bild verkleinern PHP Tipps 2004 7 19.08.2004 15:01
Bild größe hat prob mit umbenennung. JEGO PHP Tipps 2004 1 08.07.2004 16:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
imagecopyresampled exif, php exif bild verkleinern, bild verkleinern php function, php imagecopyresampled exif, php imagecopyresized exif, php imagecreate exif, php image exif speichern, exif php, bild ohne exif php, exifdaten bei createimage php, bilder verkleinern und dateiinformationen behalten, php funktion bilder verkleinern, php exif erhalten, php exif png -exif_read_data, exif nach verkleinern, php imagecopyresampled exif erhalten, bilder verkleinern für icq, verkleinerer, der exif dateien beibehält, imagecreatefromjpeg exif, php png exif schreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:14 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.