diff options
author | Minteck <contact@minteck.org> | 2023-02-22 18:04:48 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2023-02-22 18:04:48 +0100 |
commit | 1ff917767cca089a87f4e06a676c48ed132c2a73 (patch) | |
tree | 2e64d95f10d7b386b41757318e67f0463e7de99d /api | |
parent | bf2558253637537c2d57765e557bdc0e164c58ee (diff) | |
download | pluralconnect-1ff917767cca089a87f4e06a676c48ed132c2a73.tar.gz pluralconnect-1ff917767cca089a87f4e06a676c48ed132c2a73.tar.bz2 pluralconnect-1ff917767cca089a87f4e06a676c48ed132c2a73.zip |
Added 2 files (automated)
Diffstat (limited to 'api')
-rw-r--r-- | api/raindrops-img2-round.php | 94 | ||||
-rw-r--r-- | api/raindrops-two.php | 8 |
2 files changed, 102 insertions, 0 deletions
diff --git a/api/raindrops-img2-round.php b/api/raindrops-img2-round.php new file mode 100644 index 0000000..8ca6c81 --- /dev/null +++ b/api/raindrops-img2-round.php @@ -0,0 +1,94 @@ +<?php + +$fronters = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/fronters.json"), true); + +$url = isset($fronters['members'][1]) ? ($fronters['members'][1]["avatar_url"] ?? "/assets/uploads/raindrops.png") : "/assets/uploads/raindrops.png"; +file_put_contents("/tmp/temp", file_get_contents($url)); + +function imageCreateCorners($sourceImageFile, $radius) { + # test source image + if (file_exists($sourceImageFile)) { + $res = is_array($info = getimagesize($sourceImageFile)); + } + else $res = false; + + # open image + if ($res) { + $w = $info[0]; + $h = $info[1]; + switch ($info['mime']) { + case 'image/jpeg': $src = imagecreatefromjpeg($sourceImageFile); + break; + case 'image/gif': $src = imagecreatefromgif($sourceImageFile); + break; + case 'image/png': $src = imagecreatefrompng($sourceImageFile); + break; + default: + $res = false; + } + } + + # create corners + if ($res) { + + $q = 10; # change this if you want + $radius *= $q; + + # find unique color + do { + $r = rand(0, 255); + $g = rand(0, 255); + $b = rand(0, 255); + } + while (imagecolorexact($src, $r, $g, $b) < 0); + + $nw = $w*$q; + $nh = $h*$q; + + $img = imagecreatetruecolor($nw, $nh); + $alphacolor = imagecolorallocatealpha($img, $r, $g, $b, 127); + imagealphablending($img, false); + imagesavealpha($img, true); + imagefilledrectangle($img, 0, 0, $nw, $nh, $alphacolor); + + imagefill($img, 0, 0, $alphacolor); + imagecopyresampled($img, $src, 0, 0, 0, 0, $nw, $nh, $w, $h); + + imagearc($img, $radius-1, $radius-1, $radius*2, $radius*2, 180, 270, $alphacolor); + imagefilltoborder($img, 0, 0, $alphacolor, $alphacolor); + imagearc($img, $nw-$radius, $radius-1, $radius*2, $radius*2, 270, 0, $alphacolor); + imagefilltoborder($img, $nw-1, 0, $alphacolor, $alphacolor); + imagearc($img, $radius-1, $nh-$radius, $radius*2, $radius*2, 90, 180, $alphacolor); + imagefilltoborder($img, 0, $nh-1, $alphacolor, $alphacolor); + imagearc($img, $nw-$radius, $nh-$radius, $radius*2, $radius*2, 0, 90, $alphacolor); + imagefilltoborder($img, $nw-1, $nh-1, $alphacolor, $alphacolor); + imagealphablending($img, true); + imagecolortransparent($img, $alphacolor); + + # resize image down + $dest = imagecreatetruecolor($w, $h); + imagealphablending($dest, false); + imagesavealpha($dest, true); + imagefilledrectangle($dest, 0, 0, $w, $h, $alphacolor); + imagecopyresampled($dest, $img, 0, 0, 0, 0, $w, $h, $nw, $nh); + + # output image + $res = $dest; + imagedestroy($src); + imagedestroy($img); + } + + return $res; +} + +header("Content-Type: image/png"); + +$id = bin2hex(random_bytes(8)); +exec('convert -size 128x128 xc:none -draw "roundrectangle 0,0,128,128,128,128" /tmp/' . $id . '-mask.png', $out); + +exec('convert -resize 128x128 "/tmp/temp" /tmp/' . $id . '-source.png'); +exec('convert /tmp/' . $id . '-source.png -matte /tmp/' . $id . '-mask.png -compose DstIn -composite /tmp/' . $id . '.png', $out2); + +unlink("/tmp/temp"); + +echo(file_get_contents('/tmp/' . $id . '.png'));
\ No newline at end of file diff --git a/api/raindrops-two.php b/api/raindrops-two.php new file mode 100644 index 0000000..2fa09f2 --- /dev/null +++ b/api/raindrops-two.php @@ -0,0 +1,8 @@ +<?php + +header("Content-Type: text/plain"); + +$fronters = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/fronters.json"), true); +echo(json_encode([ + "multiple" => count($fronters["members"]) > 1 +]));
\ No newline at end of file |