#1 11. Januar 2008 Milchglas Effekt Klasse Möchtest auch du das Bilder auf deiner Homepage aussehen wie Milchglas ? Kein Problem mit PHP, Glib und der "Milchglas Effekt Klasse" von der Krossen Krabbe die ich euch hier zur Verfügung stellen möchte falls jemand sowas braucht! Viel Spaß! PHP: class Image { public function __construct ( $filename ) { $this -> image = imagecreatefromjpeg ( $filename ); $this -> imagex = imagesx ( $this -> image ); $this -> imagey = imagesy ( $this -> image ); } public function spatter ( $radius = 5 , $smoothness = 0 ) { for ( $y = 1 ; $y < imagesy ( $this -> image ); $y ++) { for ( $x = 1 ; $x < imagesx ( $this -> image ); $x ++) { // read pixel color $index = imagecolorat ( $this -> image , $x , $y ); $colors = imagecolorsforindex ( $this -> image , $index ); $color = imagecolorallocate ( $this -> image , $colors [ "red" ], $colors [ "green" ], $colors [ "blue" ]); // where to copy the pixel? $newx = $x + rand ( $radius - $radius * 2 , $radius ); $newy = $y + rand ( $radius - $radius * 2 , $radius ); // coordinates outside of the picture? $newx = ( $newx > $this -> imagex ) ? $this -> imagex : $newx ; $newy = ( $newy > $this -> imagey ) ? $this -> imagey : $newy ; // copy pixel imagesetpixel ( $this -> image , $newx , $newy , $color ); } } } public function getImage () { return imagejpeg ( $this -> image ); } public function display () { echo imagejpeg ( $this -> image ); } public function destroy () { imagedestroy ( $this -> image ); } } Demo: http://hell18.he.funpic.de/milchglas/ + Multi-Zitat Zitieren
#2 11. Januar 2008 AW: Milchglas Effekt Klasse Hi du, find ich recht interessant, wobei ich manche dinge komplett anders machen würde. 1. Würde ich das Geheimnisprinzip noch weiter durchziehen und z.B. die Header-Angabe mit in die Klasse zu ziehen, und dann nochmal mit Parametern zu arbeiten wie z.B. ein Response-Objekt. 2. Ist das echo bei Display wirklich nötig? Bild wird doch damit sowieso auf die Standardausgabe geschrieben wenn man keinen Dateinamen verwendet. 3. Würde ich den Destruktor nutzen um destroy auszuführen. MfG und nix für ungut, only my cents ... + Multi-Zitat Zitieren
#3 12. Januar 2008 AW: Milchglas Effekt Klasse hmm, also mir fehlt die überprüfung ob es ein bild ist. - dateiendung in array "jpg", "jpeg", "png", "gif", "bmp" ? - imagecreate() erfolgreich? gehört meiner meinung dazu das man dem user eigene fehlermeldugen ausgibt. (ned jeder kann php) + Multi-Zitat Zitieren