def func(self): try: if not self.photo is None: p = requests.get(self.photo) out = open('img.jpg', 'wb') out.write(p.content) out.close() image = Image.open('img.jpg') draw = ImageDraw.Draw(image) width = image.size[0] height = image.size[1] pix = image.load() for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] draw.point((i, j), (255 - a, 255 - b, 255 - c)) image.save('img.jpg', "JPEG") del draw self.result['attachment'] = UEngine.image('img.jpg') os.remove('img.jpg') else: self.result['message'] = 'Прикрепите фото.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: if not self.photo is None: p = requests.get(self.photo) out = open('img.jpg', 'wb') out.write(p.content) out.close() image = Image.open('img.jpg') draw = ImageDraw.Draw(image) width = image.size[0] height = image.size[1] part1 = image.crop((0, 0, width / 2, height)) part2 = part1.transpose(Image.FLIP_LEFT_RIGHT) image.paste(part2, (round(width / 2), 0)) image.save('img.jpg', "JPEG") del draw self.result['attachment'] = UEngine.image('img.jpg') os.remove('img.jpg') else: self.result['message'] = 'Прикрепите фото.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: if not self.photo is None: if UEngine.is_int(self.text): if 100 >= int(self.text) >= 0: p = requests.get(self.photo) out = open('img.jpg', 'wb') out.write(p.content) out.close() image = Image.open('img.jpg') for i in range(int(self.text)): image = image.filter(ImageFilter.BLUR) image.save('img.jpg', "JPEG") self.result['attachment'] = UEngine.image('img.jpg') os.remove('img.jpg') else: self.result['message'] = 'Введите коэффицент [0..100].' else: self.result['message'] = 'Введите коэффицент.' else: self.result['message'] = 'Прикрепите фото.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: self.text = self.text.replace('^', '**') def mandelbrot(s, pmin, pmax, ppoints, qmin, qmax, qpoints, max_iterations=200, infinity_border=10): image = np.zeros((ppoints, qpoints)) p, q = np.mgrid[pmin:pmax:(ppoints * 1j), qmin:qmax:(qpoints * 1j)] c = p + 1j * q z = np.zeros_like(c) for k in range(max_iterations): z = eval(s) mask = (np.abs(z) > infinity_border) & (image == 0) image[mask] = k z[mask] = np.nan plt.imsave(fname=f'img{k}.jpg', arr=-image.T, cmap='flag') return -image.T if len(self.text) == 0: self.text = 'z**2 + c' if not 'c' in self.text: self.text += ' + c' if not 'z' in self.text: self.text = 'z * ' + self.text plt.figure(figsize=(10, 10)) mandelbrot(self.text, -2.5, 1.5, 500, -2, 2, 500, 100) plt.xticks([]) plt.yticks([]) if self.mode == '+': images = [] for img in range(0, 100): imgname = 'img' + str(img) + '.jpg' images.append(imageio.imread(imgname)) imageio.mimsave('img.gif', images) for i in range(0, 99): os.remove(f'img{i}.jpg') if self.mode == '+': self.result['attachment'] = UEngine.doc('img.gif') os.remove('img.gif') else: self.result['attachment'] = UEngine.image('img99.jpg') os.remove('img99.jpg') return True except Exception as _e: self.result['message'] = str(_e) return False
def func(self): try: if not self.photo is None: if UEngine.is_int(self.text): if 100 >= int(self.text) >= -100: p = requests.get(self.photo) out = open('img.jpg', 'wb') out.write(p.content) out.close() image = Image.open('img.jpg') draw = ImageDraw.Draw(image) width = image.size[0] height = image.size[1] pix = image.load() factor = int(self.text) for i in range(width): for j in range(height): a = pix[i, j][0] + factor b = pix[i, j][1] + factor c = pix[i, j][2] + factor if a < 0: a = 0 if b < 0: b = 0 if c < 0: c = 0 if a > 255: a = 255 if b > 255: b = 255 if c > 255: c = 255 draw.point((i, j), (a, b, c)) image.save('img.jpg', "JPEG") del draw self.result['attachment'] = UEngine.image('img.jpg') os.remove('img.jpg') else: self.result[ 'message'] = 'Введите коэффицент [-100..100].' else: self.result['message'] = 'Введите коэффицент.' else: self.result['message'] = 'Прикрепите фото.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: msg_id = self.message sm = 0 cnt = 0 def get_color(n): return int(n / 1.25) if sm >= 255 else int(n * 2.5) text = self.text nums = [int(s) for s in text.split() if s.isdigit()] if len(nums) == 3: for i in nums: text = text.replace(str(i), '') if len(text) > 10: text = text[:10] tt = text text = '' for t in tt: text += t.upper() text = text.replace(' ', '') for i in list(text): if len(nums) == 3: r, g, b = nums[0], nums[1], nums[2] else: r, g, b = ri(0, 255), ri(0, 255), ri(0, 255) sm += r + g + b image = Image.new('RGB', (500, 500), (r, g, b)) draw = ImageDraw.Draw(image) fnt = ImageFont.truetype('arial.ttf', size=300) w, h = fnt.getsize(i) draw.text(((500 - w) / 2, (500 - h) / 2), i, fill=(get_color(r / 1.4), get_color(g / 1.4), get_color(b / 1.4)), font=fnt) image.save(f'ImageChar{msg_id}_{cnt}.jpg', 'JPEG') cnt += 1 del draw atts = '' for a in range(cnt): atts += UEngine.image(f'ImageChar{msg_id}_{a}.jpg') + ',' os.remove(f'ImageChar{msg_id}_{a}.jpg') self.result['attachment'] = atts return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: if not self.photo is None: if UEngine.is_int(self.text): if 100 >= int(self.text) >= 0: p = requests.get(self.photo) out = open('img.jpg', 'wb') out.write(p.content) out.close() image = Image.open('img.jpg') draw = ImageDraw.Draw(image) width = image.size[0] height = image.size[1] pix = image.load() depth = int(self.text) for i in range(width): for j in range(height): a = pix[i, j][0] b = pix[i, j][1] c = pix[i, j][2] s = (a + b + c) // 3 a = s + depth * 2 b = s + depth c = s if a > 255: a = 255 if b > 255: b = 255 if c > 255: c = 255 draw.point((i, j), (a, b, c)) image.save('img.jpg', "JPEG") del draw self.result['attachment'] = UEngine.image('img.jpg') os.remove('img.jpg') else: self.result['message'] = 'Введите значение [0..100].' else: self.result['message'] = 'Введите глубину.' else: self.result['message'] = 'Прикрепите фото.' return True except Exception as e: self.result['message'] = str(e) return False
def func(self): try: if self.text.lower() in ['help', 'помощь']: self.result['message'] = 'red / green / blue\n' \ 'красный / зеленый / синий\n' \ '[r][g][b]' return True if not self.photo is None: if len(self.text.split()): _r = False _g = False _b = False t = self.text.split() if 'red' in t or 'красный' in t or 'r' in t or 'к' in t or \ 'red' in self.text or 'красный' in self.text: _r = True if 'green' in t or 'зеленый' in t or 'g' in t or 'з' in t or \ 'green' in self.text or 'зеленый' in self.text or 'зелёный' in t or 'зелёный' in self.text: _g = True if 'blue' in t or 'синий' in t or 'b' in t or 'с' in t or \ 'blue' in self.text or 'синий' in self.text: _b = True if len(self.text) <= 3 and self.text != 'red': if 'r' in self.text or 'к' in self.text: _r = True if 'g' in self.text or 'з' in self.text: _g = True if 'b' in self.text or 'с' in self.text: _b = True p = requests.get(self.photo) out = open('img.jpg', 'wb') out.write(p.content) out.close() image = Image.open("img.jpg") draw = ImageDraw.Draw(image) width = image.size[0] height = image.size[1] pix = image.load() for i in range(width): for j in range(height): a = pix[i, j][0] * _r b = pix[i, j][1] * _g c = pix[i, j][2] * _b draw.point((i, j), (a, b, c)) image.save('img.jpg', "JPEG") del draw self.result['attachment'] = UEngine.image('img.jpg') os.remove('img.jpg') else: self.result['message'] = 'Выберите цвет' else: self.result['message'] = 'Прикрепите фото' return True except Exception as e: self.result['message'] = str(e) return False