|
from PIL import Image, ImageEnhance, ImageDraw |
|
from pyrogram.enums import ChatAction |
|
import numpy as np |
|
import os |
|
import cv2 |
|
import shutil |
|
|
|
|
|
async def circle_with_bg(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "circle.png" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
img = Image.open(a).convert("RGB") |
|
npImage = np.array(img) |
|
h, w = img.size |
|
alpha = Image.new("L", img.size, 0) |
|
draw = ImageDraw.Draw(alpha) |
|
draw.pieslice([0, 0, h, w], 0, 360, fill=255) |
|
npAlpha = np.array(alpha) |
|
npImage = np.dstack((npImage, npAlpha)) |
|
Image.fromarray(npImage).save(edit_img_loc) |
|
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) |
|
await message.reply_to_message.reply_photo(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("circle_with_bg-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|
|
|
|
async def circle_without_bg(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "circle.png" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
img = Image.open(a).convert("RGB") |
|
npImage = np.array(img) |
|
h, w = img.size |
|
alpha = Image.new("L", img.size, 0) |
|
draw = ImageDraw.Draw(alpha) |
|
draw.pieslice([0, 0, h, w], 0, 360, fill=255) |
|
npAlpha = np.array(alpha) |
|
npImage = np.dstack((npImage, npAlpha)) |
|
Image.fromarray(npImage).save(edit_img_loc) |
|
await message.reply_chat_action(ChatAction.UPLOAD_DOCUMENT) |
|
await message.reply_to_message.reply_document(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("circle_without_bg-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|
|
|
|
async def sticker(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "sticker.webp" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
os.rename(a, edit_img_loc) |
|
await message.reply_to_message.reply_sticker(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("sticker-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|
|
|
|
def add_corners(im, rad): |
|
circle = Image.new("L", (rad * 2, rad * 2), 0) |
|
draw = ImageDraw.Draw(circle) |
|
draw.ellipse((0, 0, rad * 2, rad * 2), fill=255) |
|
alpha = Image.new("L", im.size, 255) |
|
w, h = im.size |
|
alpha.paste(circle.crop((0, 0, rad, rad)), (0, 0)) |
|
alpha.paste(circle.crop((0, rad, rad, rad * 2)), (0, h - rad)) |
|
alpha.paste(circle.crop((rad, 0, rad * 2, rad)), (w - rad, 0)) |
|
alpha.paste(circle.crop((rad, rad, rad * 2, rad * 2)), (w - rad, h - rad)) |
|
im.putalpha(alpha) |
|
return im |
|
|
|
|
|
async def edge_curved(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "edge_curved.webp" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
im = Image.open(a) |
|
im = add_corners(im, 100) |
|
im.save(edit_img_loc) |
|
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) |
|
await message.reply_to_message.reply_sticker(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("edge_curved-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|
|
|
|
async def contrast(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "contrast.jpg" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
image = Image.open(a) |
|
contrast = ImageEnhance.Contrast(image) |
|
contrast.enhance(1.5).save(edit_img_loc) |
|
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) |
|
await message.reply_to_message.reply_photo(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("contrast-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|
|
|
|
def sepia(img): |
|
width, height = img.size |
|
new_img = img.copy() |
|
for x in range(width): |
|
for y in range(height): |
|
red, green, blue = img.getpixel((x, y)) |
|
new_val = 0.3 * red + 0.59 * green + 0.11 * blue |
|
new_red = int(new_val * 2) |
|
if new_red > 255: |
|
new_red = 255 |
|
new_green = int(new_val * 1.5) |
|
if new_green > 255: |
|
new_green = 255 |
|
new_blue = int(new_val) |
|
if new_blue > 255: |
|
new_blue = 255 |
|
|
|
new_img.putpixel((x, y), (new_red, new_green, new_blue)) |
|
|
|
return new_img |
|
|
|
|
|
async def sepia_mode(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "sepia.jpg" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
image = Image.open(a) |
|
new_img = sepia(image) |
|
new_img.save(edit_img_loc) |
|
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) |
|
await message.reply_to_message.reply_photo(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("sepia_mode-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|
|
|
|
def dodgeV2(x, y): |
|
return cv2.divide(x, 255 - y, scale=256) |
|
|
|
|
|
async def pencil(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "pencil.jpg" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
img = cv2.imread(a) |
|
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) |
|
img_invert = cv2.bitwise_not(img_gray) |
|
img_smoothing = cv2.GaussianBlur(img_invert, (21, 21), sigmaX=0, sigmaY=0) |
|
final_img = dodgeV2(img_gray, img_smoothing) |
|
cv2.imwrite(edit_img_loc, final_img) |
|
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) |
|
await message.reply_to_message.reply_photo(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("pencil-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|
|
|
|
def color_quantization(img, k): |
|
data = np.float32(img).reshape((-1, 3)) |
|
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 20, 1.0) |
|
_, label, center = cv2.kmeans( |
|
data, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS |
|
) |
|
center = np.uint8(center) |
|
result = center[label.flatten()] |
|
result = result.reshape(img.shape) |
|
return result |
|
|
|
|
|
async def cartoon(client, message): |
|
try: |
|
userid = str(message.chat.id) |
|
if not os.path.isdir(f"./DOWNLOADS/{userid}"): |
|
os.makedirs(f"./DOWNLOADS/{userid}") |
|
download_location = "./DOWNLOADS" + "/" + userid + "/" + userid + ".jpg" |
|
edit_img_loc = "./DOWNLOADS" + "/" + userid + "/" + "kang.jpg" |
|
if not message.reply_to_message.empty: |
|
msg = await message.reply_to_message.reply_text( |
|
"<b>π³πΎππ½π»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>", quote=True |
|
) |
|
a = await client.download_media( |
|
message=message.reply_to_message, file_name=download_location |
|
) |
|
await msg.edit("<b>ππΏπ»πΎπ°π³πΈπ½πΆ πΈπΌπ°πΆπ΄....</b>") |
|
img = cv2.imread(a) |
|
edges = cv2.Canny(img, 100, 200) |
|
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) |
|
edges = cv2.adaptiveThreshold( |
|
gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 5 |
|
) |
|
color = cv2.bilateralFilter(img, d=9, sigmaColor=200, sigmaSpace=200) |
|
|
|
cv2.bitwise_and(color, color, mask=edges) |
|
img_1 = color_quantization(img, 7) |
|
cv2.imwrite(edit_img_loc, img_1) |
|
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) |
|
await message.reply_to_message.reply_photo(edit_img_loc, quote=True) |
|
await msg.delete() |
|
else: |
|
await message.reply_text("Why did you delete that??") |
|
try: |
|
shutil.rmtree(f"./DOWNLOADS/{userid}") |
|
except Exception: |
|
pass |
|
except Exception as e: |
|
print("cartoon-error - " + str(e)) |
|
if "USER_IS_BLOCKED" in str(e): |
|
return |
|
else: |
|
try: |
|
await message.reply_to_message.reply_text( |
|
"Something went wrong!", quote=True |
|
) |
|
except Exception: |
|
return |
|
|