Get Adobe Flash player

php ile resim köşelerini yuvarlayan class

PHP ile resimlerin köşelerini bu ufak class yardımı ile yuvarlayabiliriz.

<?php
/*
 * Created on 15.Ara.2006
 *
 * A simple class that creates rounded corner images for tables
 * Coded By Ozgur Kaya
 * <a href="mailto:ozgurkaya01@hotmail.com">ozgurkaya01@hotmail.com</a>
 */

class roundedCorners {
    var $width = 50;
    var $height = 50;
    var $bgcolor = "#FFFFFF";
    var $imagecolor = "#ff0000";
    var $align;
    var $cx;
    var $cy;
    var $image;
    var $type = "jpeg";
    var $transparent = false;

    function roundedCorners($width,$height,$align,$bgcolor,$color,$type,$transparent){
        $this->setWidth($width); // sets image width
        $this->setHeight($height); // sets image height
        $this->setAlign($align);  // sets align of image (top-left, top-right, bottom-left, bottom-right)
        $this->setbgColor($bgcolor); // set image background color
        $this->setImageColor($color); // set rounded image color
        $this->setType($type); // set extension for image (jpg,gif,png)
        $this->setTransparent($transparent); // set transparency of the image
    }

    function setAlign($align){
        $align = ($align) ? $align : $this->align;
  if ($this->width == $this->height) {
   $align_array = array (
      "tl"=>array($this->width,$this->height),
      "tr"=>array(0,$this->width),
      "bl"=>array($this->height,0),
      "br"=>array(0,0)
     );
  }
  elseif ($this->width > $this->height) {
   $align_array = array (
      "tl"=>array($this->width,$this->height),
      "tr"=>array(0,$this->height),
      "bl"=>array($this->height*2,0),
      "br"=>array(0,0)
     );   
  }
  elseif ($this->width < $this->height) {
   $align_array = array (
      "tl"=>array($this->width,$this->height),
      "tr"=>array(0,$this->height),
      "bl"=>array($this->width,0),
      "br"=>array(0,0)
     );   
  }
        $this->cx = $align_array[$align][0];
        $this->cy = $align_array[$align][1];
    }

    function setWidth($width){
        $this->width = ($width) ? $width : $this->width;
    }

    function setHeight($height) {
        $this->height = ($height) ? $height : $this->height;
    }

    function setBgColor($bgcolor){
        $this->bgcolor = ($bgcolor) ? $bgcolor : $this->bgcolor;
    }

    function setImageColor($color) {
        $this->imagecolor = ($color) ? $color : $this->imagecolor;
    }

    function setType($type){
        if ($type == "jpg")
            $type = "jpeg";
        $types = array("gif","jpeg","png");
        $type = (in_array($type,$types)) ? $type : "jpeg";
        $this->type = $type;
    }

    function setTransparent($transparent){
        if ($transparent) {
            $this->type = "gif";
            $this->transparent = true;
        }
        else
            $this->transparent = false;
    }

    function displayImage($type){
        $types = array ("gif"=>"gif","png"=>"png","jpg"=>"jpeg");
        $type = $types[$type];
        header("Content-type: image/png]}");
        imagepng($this->image);
    }

    function createRGBValues($color) {
        $color = str_replace("#","",$color);
        $rgb["red"] = hexdec(substr($color,0,2));
        $rgb["green"] = hexdec(substr($color,2,2));
        $rgb["blue"] = hexdec(substr($color,4,2));
        return $rgb;
    }

    function createImage() {
        $this->image = imagecreatetruecolor($this->width,$this->height);

        //
        $bg_rgb = $this->createRGBValues($this->bgcolor);
        $bg = imagecolorallocate($this->image, $bg_rgb["red"], $bg_rgb["green"], $bg_rgb["blue"]);
        if ($this->transparent)
            $bg = imagecolortransparent($this->image,$bg);
        imagefill($this->image, 0, 0, $bg);

        //
        $img_rgb = $this->createRGBValues($this->imagecolor);;
        $col_ellipse = imagecolorallocate($this->image, $img_rgb["red"], $img_rgb["green"], $img_rgb["blue"]);

        $w = $this->width * 2;
        $h = $this->height * 2;
        imagefilledellipse($this->image, $this->cx, $this->cy, $w, $h, $col_ellipse);

        header("Content-type: image/{$this->type}");  // set header (you can use different types png,jpeg,gif
        switch ($this->type){
            case "gif":
                imagegif($this->image);
                break;
            case "png":
                imagepng($this->image);
                break;
            case "jpeg":
                imagejpeg($this->image);
                break;
        }
    }

}
?>

Kullanımı

<?php
//using class
$img = new roundedCorners($_GET['w'],$_GET['h'],$_GET['al'],$_GET['bg'],$_GET['cl'],$_GET['type'],$_GET['tr']); // create a new rounded corner image object with width, height, and align attributes
$img->createImage(); // create image
//

?>

Leave a Reply