function ImageRoundEdges($image, $size, $args = array()){ if (!is_numeric($size)){ throw new Exception("Not a valid size: " . $size); } $width = ImageSX($image); $height = ImageSY($image); if ($args["border"]){ $bordercolor = ImageHTMLColor($image, $args["border"]); $oldimage = $image; $image = ImageCreateTrueColor($width, $height); ImageFilledRectangle($image, 0, 0, $width, $height, $bordercolor); ImageCopyResized($image, $oldimage, 1, 1, 0, 0, $width - 2, $height - 2, $width, $height); }else{ $oldimage = $image; $image = ImageCreateTrueColor($width, $height); ImageCopyResized($image, $oldimage, 0, 0, 0, 0, $width, $height, $width, $height); } $transp = ImageColorTransparent($image); if (!$transp or $transp == -1){ if ($args["htmltranscolor"]){ $transp = ImageHTMLColor($image, $args["htmltranscolor"]); }else{ $transp = ImageHTMLColor($image, "#d91da2"); } } for($i = 1; $i < $size / 2; $i++){ //Upper left corner. $center = $i - 2; ImageArc($image, $center, $center, $size, $size, 180, 270, $white); ImageArc($image, $center - 1, $center, $size, $size, 180, 270, $white); ImageArc($image, $center, $center, $size, $size, 180, 270, $transp); ImageArc($image, $center - 1, $center, $size, $size, 180, 270, $transp); //Upper right corner. $left = $width - $i + 2; $top = $i - 2; ImageArc($image, $left, $top, $size, $size, 270, 360, $transp); ImageArc($image, $left, $top - 1, $size, $size, 270, 360, $transp); //Lower left corner. $left = $i - 2; $top = $height - $i + 2; ImageArc($image, $left, $top, $size, $size, 90, 180, $transp); ImageArc($image, $left, $top - 1, $size, $size, 90, 180, $transp); //Lower right corner. $left = $width - $i + 2; $top = $height - $i + 2; ImageArc($image, $left, $top, $size, $size, 0, 90, $transp); ImageArc($image, $left, $top - 1, $size, $size, 0, 90, $transp); } if ($args["border"]){ //Lower right corner. $left = $width - $i + 2; $top = $height - $i + 2; ImageArc($image, $left, $top, $size, $size, 0, 90, $bordercolor); //Lower left corn $left = $i - 2; $top = $height - $i + 2; ImageArc($image, $left, $top, $size, $size, 90, 180, $bordercolor); //Upper left corner. $center = $i - 2; ImageArc($image, $center, $center - 1, $size, $size, 180, 270, $bordercolor); //Upper right corner. $left = $width - $i + 2; $top = $i - 2; ImageArc($image, $left, $top - 1, $size, $size, 270, 360, $bordercolor); } ImageColorTransparent($image, $transp); return $image; }
} if ($_GET["padding"]){ $origx = ImageSX($image); if ($_GET["paddingorigsize"]){ $image = ImagePadding(array( "image" => $image, "color" => ImageHTMLColor($image, $bgcolor), "padding" => $_GET["padding"], "keep_size" => true )); }else{ $image = ImagePadding(array( "image" => $image, "color" => ImageHTMLColor($image, $bgcolor), "padding" => $_GET["padding"] )); } } if ($_GET["edgesize"]){ $args = array( "htmltranscolor" => "#ff00a8" ); if ($_GET["edgeborder"]){ $args["border"] = $_GET["edgeborder"]; } $image = ImageRoundEdges($image, $_GET["edgesize"], $args); }