Stand-Alone & Anpassungen devAScms Webradio Edition devAScms DJ Edition devAScms Design Templates
Sehr geehrter Besucher,
ich entschuldige mich für den stellenweise verunstalteten (ältere Programmierung traf auf neuere Serversoftware) und manchmal nicht mehr ganz aktuellen Webauftritt. Der Neuaufbau von devAS.de ist in Planung, aber da Kunden immer Vorrang haben, kann sich das noch etwas hinziehen.

Danke für das Verständnis
A. Schramm
Inhaber devAS.de - Webprogrammierung
Datum: 30.08.2009 (3925x gelesen)
Name: Andreas / Webseite: http://www.devAS.de
=> zurück zur Übersicht

ImageResize - Klasse

folgende Klasse entstand im Jahre 2005 und war bisher auf dem WebStyleboard veröffentlicht

Momentan versuche ich gerade das mit OOP und Class und so zu schnallen. Deshalb hab ich mal spasseshalber eine Klasse zum Erstellen von Vorschaubildern gebaut. (ich hatte diese Funktion vorher als eine Funktion. Ich weiss das dies nix weltbewegendes ist und es solche Sachen wie Sand am Meer gibt ... aber hier geht es darum, mich weiterzuentwickeln und zu neuen Ufern aufzubrechen :)

<?php
class resizer{
 var 
$imgDatei;
 var 
$imgBreit;
 var 
$imgHoch;
 var 
$imgRatio   1;
 var 
$imgQuality 95;
 var 
$imgData;
 var 
$newHoch;
 var 
$newBreit;
 
 function 
set_breit($breit){
     
$this->imgBreit $breit;
 }
 function 
set_hoch($hoch){
     
$this->imgHoch $hoch;
 }
 function 
set_ratio($ratio){
     
$this->imgRatio $ratio;
 }
 function 
set_quality($r){
     
$this->imgQuality $r;
 }
 function 
set_datei($datei){
     
$this->imgDatei $datei;
     if(!
file_exists($datei))$this->is_error("Die Datei '".$this->imgDatei."' existiert nicht.");
     
$this->set_data($this->imgDatei);
 }
 function 
set_data($datei){
     
$this->imgData getimagesize($this->imgDatei);
     if(
$this->imgData[2] != && $this->imgData[2] != && $this->imgData[2] != 3)
         
$this->is_error("Die Datei hat kein erlaubtes Dateiformat (jpg,gif,png)");
     
// $this->imgData[0] - Breite
     // $this->imgData[1] - Höhe
     // $this->imgData[2] - Typ gif etc
 
}
 
 function 
set_newdata(){
  if(
$this->imgRatio == 1){
   if( 
$this->imgData[0] >= $this->imgData[1] ){
     
$this->new_breit  $this->imgBreit;
     
$this->new_hoch   abs($this->imgData[1] * $this->new_breit $this->imgData[0]);
   }
   if( 
$this->imgData[0] < $this->imgData[1] ){
     
$this->new_hoch   $this->imgHoch;
     
$this->new_breit  abs($this->imgData[0] * $this->new_hoch $this->imgData[1]);
   }
   }else{
   
$this->new_breit  $this->imgBreit;
   
$this->new_hoch   $this->imgHoch;
   }
 }
 function 
get_resize($dateiname ""){
 
$this->set_newdata();

 if(
$this->imgData[2]==1)$vorlage   imagecreatefromgif($this->imgDatei);
 if(
$this->imgData[2]==2)$vorlage   imagecreatefromjpeg($this->imgDatei);
 if(
$this->imgData[2]==3)$vorlage   imagecreatefrompng($this->imgDatei);

 
$new_bild imagecreatetruecolor($this->new_breit$this->new_hoch);

// Das geladene Bild auf Thumbnailgröße verkleinern
 
imagecopyresampled($new_bild,
                                   
$vorlage,0,0,0,0,
                                   
$this->new_breit,$this->new_hoch,
                                   
$this->imgData[0],$this->imgData[1]); 


 if(
$this->imgData[2]==1)imagegif($new_bild,$dateiname);
 if(
$this->imgData[2]==2)imagejpeg($new_bild,$dateiname$this->imgQuality);
 if(
$this->imgData[2]==3)imagepng($new_bild,$dateiname);

 
ImageDestroy($vorlage);
}
 
 function 
is_error($msg){
     echo 
"<strong>Es ist ein Fehler aufgetreten</strong><br />";
     echo 
$msg;
     die();
 }
 
}
?>

benutzt wird die sache dann so:

<?php
// Klasse initialisieren
$img = new resizer();

// Breite des neuen Bildes festlegen, wenn Breite > Höhe bei ratio = 1
$img->set_breit(150);

// Höhe des neuen Bildes festlegen, wenn Breite < Höhe bei ratio = 1
$img->set_hoch(100);

// Ratio 1 für an und 0 für aus
// 1 = Bild wird proportional geändert, also nicht verzerrt
// 0 = Bild wird mit den oben angegebenen Maßen erstellt
$img->set_ratio(1);

// Qualität des neuen Bildes (nur JPG) 0-100
$img->set_quality(95);

// Pfad zum Orginalbild
// Resize von .gif funktioniert erst mit der neuesten GD-Version (2.0.28 glaube)
$img->set_datei("temp/388665.jpg");

// Starte den Vorgang

// Das neue Bild wird direkt ausgegeben
$img->get_resize();

// Das neue Bild wird als $filename gespeichert
//$img->get_resize($filename);
?>


so dele

PS: Vorschläge für eine eventl. sinnvollere OOP bitte unbedingt hier loswerden. Ich habe leider immer noch so meine Schwierigkeiten mit dem Verstehen von OOP.