Portal > Foren > PHP > PHP-Programmierung > thumbnail-Klasse; Qualität ok?
Antwort
 
Themen-Optionen
Alt 08.09.2007, 20:01 Nach oben    #21
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

@"FloB":
Den Typ würde ich nie anhand der Dateiendung festmachen, sondern immer mit getimagesize().

Und auch Dotfiles würde ich nicht rausnehmen, wozu denn? Und warum den Links nicht folgen, was spricht dagegen? Ich meinte bei dem Punkt nur, dass der Variablenname $file ein bischen eng ist. $entry würde z.B. besser passen.

Mit dem !== false meinte ich, folgendes:

PHP-Code:
if (($a && $b) !== false)

ist das gleichewie

if ($a && $b
Ich benutze übrigens folgende Methode für eine proportionale Verkleinerung auf gegebene Maximalmaße:
PHP-Code:
        $iMaxWidth  100;
        
$iMaxHeight 200;

        if (
$this->width <= $iMaxWidth
            
&& $this->height <= $iMaxHeight)
            return;

        
$fRelOrig  $this->width/$this->height;
        
$fRelMax   $iMaxWidth/$iMaxHeight;

        if (
$fRelOrig >= $fRelMax) {

            
$iWidth  $iMaxWidth;
            
$iHeight round($iWidth * (1/$fRelOrig));

        } else {

            
$iHeight $iMaxHeight;
            
$iWidth  round($iHeight $fRelOrig);
        }

        
$this->width  $iWidth;
        
$this->height $iHeight
Und von wegen Konstanten wäre halt sowas möglich.
PHP-Code:
define('IMAGE_JPEG'<< 0);
define('IMAGE_PNG'<< 1);
define('IMAGE_GIF'<< 2);
define('IMAGE_TIFF'<< 3);

$ImageDir->createThumbnails($TargetDir100200IMAGE_JPEG IMAGE_PNG IMAGE_GIF); 
[EDIT]Ich seh gerade, dass es bereits diese Konstanten gibt. Sie tragen das Präfix "IMG_". Tiffs sind allerdings nicht dabei [/EDIT]

Basti

Geändert von Jann Hendrik (08.09.2007 um 20:58 Uhr). Grund: php-tag geschlossen
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.09.2007, 20:34 Nach oben    #22
Erfahrener Benutzer
 
Registriert seit: 12.06.2006
Beiträge: 199
Standard

Hm, wieso geht das jetz an mich?
FloB ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.09.2007, 21:10 Nach oben    #23
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Ich meinte "dago", sorry. Ich bozog mich mit meinem ersten Satz auf diese RegExp-Prüfung in seinem Code.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.09.2007, 21:11 Nach oben    #24
Daniel Golowin
 
Registriert seit: 17.11.2005
Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
Standard

An der Stelle finde ich es schon so richtig @Basti. Es sollen ja nur bestimmte Dateien aussortiert werden. Ob es sich dann wirklich um ein JPEG handelt, tut ja die Klasse überprüfen und falls nicht eine Exception werfen, auf die reagiert werden kann.
Natürlich währe es mir auch lieber, wenn an der Stelle eine Funktion aufgerufen würde, die den Mimetype der Datei zurückgibt/überprüft. Ich kenne allerdings keine, die in der Standard-Bibliothek von PHP ist.
dago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.09.2007, 10:20 Nach oben    #25
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Ist einfach eine Frage der Anforderungen. Wenn diese lauten, dass der Bildtyp mit angegeben werden kann, dann muss man den prüfen, wenn diese sind, dass bestimmte Dateiendungen angegeben werden können, dann eben diese oder eben beides zusammen.

Und hier ging es ja um den Bildtyp und nicht darum, wie die Bilder benannt wurden, daher mein Einwand. Aber klar, kann man natürlich mit einbauen - ist eben nur die Frage, was man will.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.09.2007, 14:47 Nach oben    #26
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

so - ich habe mich mal gerade hieran gemacht:

Zitat:
Zitat von dago Beitrag anzeigen
Hallo Jann, dass was mich etwas stört ist wie du die Größe bestimmst:
PHP-Code:
      // neue Größe bestimmen
      
if($src_width >= $src_height)
      {
        
$new_image_width  $ThumbnailMaxX;
        
$new_image_height $src_height $ThumbnailMaxX $src_width;
      }
      if(
$src_width $src_height)
      {
        
$new_image_height $ThumbnailMaxY;
        
$new_image_width  $src_width $ThumbnailMaxX $src_height;
      } 
Mag sein, dass es für deine Zwecke funktioniert. Aber wenn man schon maximale Größe vergibt, dann soll sich die Funktion auch an die Vorgaben halten.

Beispiel:
PHP-Code:
// Vorgabe
$max_width 140$max_height 100;
// Bildausmasse
$width 800$height 600;

// Ergebnis new_width: 140, new_height: 105 
Du siehst, dass die Höhe bei deiner Funktion bei dieser Vorgabe falsch berechnet wird.
Deiner Theorie kann ich nur bestimmen:
Zitat:
wenn man schon maximale Größe vergibt, dann soll sich die Funktion auch an die Vorgaben halten.
Also - das ganze ausprobiert - und klar - damit hast du natürlich vollkommen Recht.

Ich habe mir mal den minimalen Punkt, der dann aber doch entscheidend ist angeschaut.

Danke dafür!


Der Teil sieht bei mir nun so aus - also wie bei dir
PHP-Code:
          // calculate new size
          
if ($src_width >= $src_height)
          {
            
$new_image_height $src_height $src_width $this->ThumbnailMaxX;
            
$new_image_width  $this->ThumbnailMaxX;

            if (
$new_image_height $this->ThumbnailMaxY)
            {
              
$new_image_width  $new_image_width $new_image_height $this->ThumbnailMaxY;
              
$new_image_height $this->ThumbnailMaxY;
            }
          }
          else
          {
            
$new_image_width  $src_width $src_height $this->ThumbnailMaxY;
            
$new_image_height $this->ThumbnailMaxY;

            if (
$new_image_width $this->ThumbnailMaxX)
            {
              
$new_image_height $new_image_height $new_image_width $this->ThumbnailMaxX;
              
$new_image_width  $this->ThumbnailMaxX;
            }
          } 

// Nachtrag:
Ich habe festgestellt, dass ein Problem dann auftritt wenn das Originalbild kleiner als das zu erzeugende Bild ist.
Dann würde das Vorschaubild vergrößert werden - was unschön aussieht.
Daher habe ich das entsprechend erweitert:
PHP-Code:
          // calculate new size
          
if ($src_width >= $src_height)
          {
            
$new_image_height $src_height $src_width $this->ThumbnailMaxX;
            
$new_image_width  $this->ThumbnailMaxX;

            if (
$new_image_height $this->ThumbnailMaxY)
            {
              
$new_image_width  $new_image_width $new_image_height $this->ThumbnailMaxY;
              
$new_image_height $this->ThumbnailMaxY;
            }
          }
          else
          {
            
$new_image_width  $src_width $src_height $this->ThumbnailMaxY;
            
$new_image_height $this->ThumbnailMaxY;

            if (
$new_image_width $this->ThumbnailMaxX)
            {
              
$new_image_height $new_image_height $new_image_width $this->ThumbnailMaxX;
              
$new_image_width  $this->ThumbnailMaxX;
            }
          }

         
// for the case that the thumbnail would be bigger then the original picture
         
if($new_image_height $src_height)
          {
            
$new_image_width  $new_image_width $src_height/$new_image_height;
            
$new_image_height $src_height;
          }

          if(
$new_image_width $src_width)
          {
            
$new_image_height $new_image_height $new_image_width/$src_width;
            
$new_image_width  $src_width;
          } 

Geändert von Jann Hendrik (20.09.2007 um 18:02 Uhr).
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

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 aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klasse verfügbar machen jjelliss PHP-Programmierung 7 09.09.2007 15:36
Klasse in Klasse verwenden? goelliboy PHP-Programmierung 12 07.09.2007 11:43
Wert Varible in Listener anderer Klasse nutzen??? risa Desktop-Applikationen und Grafik 1 03.04.2006 07:36
Design für eine Klasse js-mueller Allgemeine Java-Programmierung 1 12.03.2006 19:23
DB Klasse Problem, vererben, kombinieren ex³ PHP-Programmierung 7 05.02.2006 17:06


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:26 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44