Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> PHP Thumbails
Coach
Geschrieben am: So 29.06.2008, 16:28
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 102
Mitglied seit: 26.09.2007


Hallo!

Ich möchte verschieden große Thumbnails erstellen zur Vorschau einer Gallerie.
Dabei sollen diese Thmbnails jedoch alle eine einheitliche Größe haben.
Das Problem wenn ich ne feste Größe angebe: Die Bilder sind verzerrt.. sei es in der Länge oder der Breite.

Ist es mit PHP möglich, nur nen Bildausschnitt als Thumbail zu nehmen?
Oder kann mir jmd ne andere Möglichkeit vorschlagen?
Top
PMEmail Poster
Top
 
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#2 Geschrieben am: So 29.06.2008, 17:43 (+01:14)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2300
Mitglied seit: 4.02.2006


Ich weiß nicht, ob es in PHP da etwas Vordefiniertes gibt (bin ja nicht so der PHP-Nutzer).

Aber für server-daten habe ich mir das einfach selbst zusammengebaut:

Man kann einen Gesamtrahmen definieren, bsp. 185 Pixel Höhe / 135 Pixel Breite.

Und dann sind das eben Fallunterscheidungen. Etwas Fummelarbeit, aber es geht.

Und man kann dann bsp. einen weißen Streifen dazusetzen, damit alle Bilder mit denselben Maßen rauskommen.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung.
Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert.
Top
PMEmail PosterUsers Website
Top
 

#3 Geschrieben am: So 29.06.2008, 18:17 (+00:34)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 175
Mitglied seit: 4.11.2006


hast du es schon mit dem GD Library versucht ?
Top
PMEmail PosterYahoo
Top
 
Crazymind
#4 Geschrieben am: Mo 30.06.2008, 07:00 (+12:43)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 186
Mitglied seit: 25.02.2005


Mach dich mal etwas im Internet über Imagemagick schlau.
Besonders über die Befehle crop und scale.

Grüsse, Crazy


--------------------
www.crazymind.ch - Webdesign, Bildbearbeitung, Animationen
Top
PMEmail Poster
Top
 
Yosh
#5 Geschrieben am: Mo 30.06.2008, 09:15 (+02:15)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 163
Mitglied seit: 6.11.2006


CODE
function resize($image,$width,$height = 0,$scale = false) {
   $src = @GetImageSize($image);
   $src_w = $src[0];
   $src_h = $src[1];
   if(is_array($src)) {
     $quotient = $src_w / $src_h;
     
     if($height==0) $height = $width * $quotient;
     if($width==0) $width = $height * $quotient;
     
     if($scale && $src_w < $width && $src_h < $height) {
       $src_w = $src_w + $width;
       $src_h = $src_h + $height;
     }
     if($src_w > $width) {
       $dst_w = $width;
       $dst_h = $dst_w / $quotient;
     }
     if($src_h > $height) {
       $dst_h = $height;
       $dst_w = $dst_h * $quotient;
     }

     if($src_h == $src_w) {
       $dst_h = $src_h;
       $dst_w = $src_w;
     }
     if ( $dst_h > $height || $dst_w > $width) {
       $dst_h = $height;
       $dst_w = $dst_h * $quotient;
       if ($dst_w > $width) {
         $dst_w = $width;
         $dst_h = $width / $quotient;
       }
     }
     if($src_w < $width && $src_h < $height) {
       $dst_w = $src_w;
       $dst_h = $src_h;
     }
     $dst = array("width" => $dst_w, "height" => $dst_h);
   }
   return $dst;
 }

 public static function resizeToFile($sourcefile, $dest_x, $dest_y, $targetfile = false, $endung = "jpg", $jpegqual = 90) {
   if(!$targetfile) $targetfile = $sourcefile;
   /* Get the dimensions of the source picture */
   $picsize=getimagesize("$sourcefile");

   $source_x = $picsize[0];
   $source_y  = $picsize[1];
   switch($endung) {
     case "gif": $source_id = imageCreateFromGIF("$sourcefile"); break;
     case "png": $source_id = imageCreateFromPNG("$sourcefile"); break;
     default: $source_id = imageCreateFromJPEG("$sourcefile");
   }
   $targetfile = str_replace($endung, "jpg", $targetfile);

   /* Create a new image object (not neccessarily true colour) */

   $target_id=imagecreatetruecolor($dest_x, $dest_y);

   /* Resize the original picture and copy it into the just created image
    object. Because of the lack of space I had to wrap the parameters to
    several lines. I recommend putting them in one line in order keep your
    code clean and readable */


   $target_pic=imagecopyresampled($target_id,$source_id, 0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);

   /* Create a jpeg with the quality of "$jpegqual" out of the
    image object "$target_pic".
    This will be saved as $targetfile */

   imagejpeg ($target_id,"$targetfile",$jpegqual);

   return $targetfile;
 }


mit Resize die Maße fürs Thumbnail berechnen und mit resizeToFile speichern (oder beides kombinieren, je nachdem wie du's brauchst).

Die erste Funktion von mir und die zweite weiß ich nimmer wann die in meine Lib gekommen ist wink.gif

Viel Erfolg damit


--------------------
Top
PMEmail Poster
Top
 
Coach
#6 Geschrieben am: Mo 30.06.2008, 10:39 (+01:23)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 102
Mitglied seit: 26.09.2007


Danke euch :-)!
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/25154

Topic Options Reply to this topicStart new topicStart Poll

 





Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]