aboutsummaryrefslogtreecommitdiff
path: root/Neutron-trunk/api/engine-cyclic/components/favicon.php
diff options
context:
space:
mode:
Diffstat (limited to 'Neutron-trunk/api/engine-cyclic/components/favicon.php')
-rw-r--r--Neutron-trunk/api/engine-cyclic/components/favicon.php88
1 files changed, 88 insertions, 0 deletions
diff --git a/Neutron-trunk/api/engine-cyclic/components/favicon.php b/Neutron-trunk/api/engine-cyclic/components/favicon.php
new file mode 100644
index 0000000..3d078a1
--- /dev/null
+++ b/Neutron-trunk/api/engine-cyclic/components/favicon.php
@@ -0,0 +1,88 @@
+<?php
+
+ class CircleCrop
+ {
+
+ private $src_img;
+ private $src_w;
+ private $src_h;
+ private $dst_img;
+ private $dst_w;
+ private $dst_h;
+
+ public function __construct($img, $dstWidth, $dstHeight)
+ {
+ $this->src_img = $img;
+ $this->src_w = imagesx($img);
+ $this->src_h = imagesy($img);
+ $this->dst_w = $dstWidth;
+ $this->dst_h = $dstHeight;
+ }
+
+ public function __destruct()
+ {
+ if (is_resource($this->dst_img))
+ {
+ imagedestroy($this->dst_img);
+ }
+ }
+
+ public function display()
+ {
+ imagepng($this->dst_img, $_SERVER['DOCUMENT_ROOT'] . "/resources/upload/favicon.png");
+ return $this;
+ }
+
+ public function reset()
+ {
+ if (is_resource(($this->dst_img)))
+ {
+ imagedestroy($this->dst_img);
+ }
+ $this->dst_img = imagecreatetruecolor($this->dst_w, $this->dst_h);
+ imagecopy($this->dst_img, $this->src_img, 0, 0, 0, 0, $this->dst_w, $this->dst_h);
+ return $this;
+ }
+
+ public function size($dstWidth, $dstHeight)
+ {
+ $this->dst_w = $dstWidth;
+ $this->dst_h = $dstHeight;
+ return $this->reset();
+ }
+
+ public function crop()
+ {
+ $this->reset();
+
+ $mask = imagecreatetruecolor($this->dst_w, $this->dst_h);
+ $maskTransparent = imagecolorallocate($mask, 255, 0, 255);
+ imagecolortransparent($mask, $maskTransparent);
+ imagefilledellipse($mask, $this->dst_w / 2, $this->dst_h / 2, $this->dst_w, $this->dst_h, $maskTransparent);
+
+ imagecopymerge($this->dst_img, $mask, 0, 0, 0, 0, $this->dst_w, $this->dst_h, 100);
+
+ $dstTransparent = imagecolorallocate($this->dst_img, 255, 0, 255);
+ imagefill($this->dst_img, 0, 0, $dstTransparent);
+ imagefill($this->dst_img, $this->dst_w - 1, 0, $dstTransparent);
+ imagefill($this->dst_img, 0, $this->dst_h - 1, $dstTransparent);
+ imagefill($this->dst_img, $this->dst_w - 1, $this->dst_h - 1, $dstTransparent);
+ imagecolortransparent($this->dst_img, $dstTransparent);
+
+ return $this;
+ }
+
+ }
+
+ if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/resources/upload/siteicon-uncomp.png")) {
+ $path = $_SERVER['DOCUMENT_ROOT'] . "/resources/upload/siteicon-uncomp.png";
+ } else {
+ $path = $_SERVER['DOCUMENT_ROOT'] . "/resources/upload/siteicon.png";
+ }
+
+ $image = imagecreatefrompng($path);
+
+ $width = imagesx($image);
+ $height = imagesy($image);
+ $crop = new CircleCrop($image,$width,$height);
+ $crop->crop()->display(); \ No newline at end of file