Blackfid
-
Публикации
19 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Blackfid
-
-
Многие начинающие программисты на python сталкивались с таким вопросом, какой интерфейс для проекта выбрать. Многие новички писали проекты под текстовый интерфейс. Согласимся, что пользователя надо удивить своим проектом. Если же у вас написан проект под текстовый интерфейс, то эта статья для вас.
С помощью небольшого кода пользователь при открытии увидит небольшую анимацию из символов. Программист в праве поставить любую GIF - анимацию, которая появится при открытии.
- Посмотрим пример такой анимации:
Начало
Для начала мы создам GIF - анимацию текста:
Переходим на сайт: textdrom.
Для примера написал текст "OBER LZT".
Указал параметр размера шрифта 146, чтобы анимация текста была во весь GIF-баннер.
Перейдем в окно "ЦВЕТА, ФОН".
В данном разделе выставил цвета текста - белый, цвет объма - черный и фон - черный.
Нажимаем "СОХРАНИТЬ" и наблюдаем результат:
Наш результат сразу загрузится на компьютер под именем download.gif. Нам нужно переименовать его в mygif.gif.
В коде ты сможешь изменить название файла:
Перейдем к коду
Установим библиотеки
pip install pillow pip install opencv (если не работает, пробуйте: pip install opencv-python
Код который преобразует наш GIF - баннер в анимацию символов (ASCII):
from PIL import Image, ImageDraw, ImageFont import os import time import sys def extract_gif_frames(gif, fillEmpty=False): frames = [] try: while True: gif.seek(gif.tell() + 1) new_frame = Image.new('RGBA', gif.size) new_frame.paste(playgif, (0, 0), playgif.convert('RGBA')) if fillEmpty: canvas = Image.new('RGBA', new_frame.size, (255, 255, 255, 255)) canvas.paste(new_frame, mask=new_frame) new_frame = canvas frames.append(new_frame) except EOFError: pass return frames def convert_image_to_ascii(image): font = ImageFont.load_default() (chrx, chry) = font.getsize(chr(32)) weights = [] for i in range(32, 127): chrImage = font.getmask(chr(i)) ctr = 0 for y in range(chry): for x in range(chrx): if chrImage.getpixel((x, y)) > 0: ctr += 1 weights.append(float(ctr) / (chrx * chry)) output = "" (imgx, imgy) = image.size imgx = int(imgx / chrx) imgy = int(imgy / chry) image = image.resize((imgx, imgy), Image.BICUBIC) image = image.convert("L") pixels = image.load() for y in range(imgy): for x in range(imgx): w = float(pixels[x, y]) / 255 wf = -1.0; k = -1 for i in range(len(weights)): if abs(weights[i] - w) <= abs(wf - w): wf = weights[i]; k = i output += chr(k + 32) output += "\n" return output def convert_frames_to_ascii(frames): ascii_frames = [] for frame in frames: new_frame = convert_image_to_ascii(frame) ascii_frames.append(new_frame) return ascii_frames def animate_ascii(ascii_frames, frame_pause=.001, num_iterations=60, clear_prev_frame=True): for i in range(num_iterations): for frame in ascii_frames: print(frame) time.sleep(frame_pause) if clear_prev_frame: os.system('cls') def start_program(): print('Привет, это небольшое дополнение к нашему коду') print('С помощью такого небольшого дополнения вы сможете визуализировать программу в cmd еще лучше') fg = input() playgif = Image.open("mygif.gif") frames = extract_gif_frames(playgif, fillEmpty=True) ascii_frames = convert_frames_to_ascii(frames) animate_ascii(ascii_frames, num_iterations=2) start_program()
При запуске проекта будет запускаться анимация.
0 -
Проник в пк жертвы, получил админские права. Как отключить антивирус с помощью powershell, дефендер без проблем получилось, а вот с АВ не получается.
0 -
всегда забавляют такие темы
0 -
-
Дружок, а где ты это откопал?
0 -
Эти темы умерли
0 -
Кто занимается рассылкой vk?
Скинь те свои цены
0 -
а ты еще и нашару хочешь?
0 -
Открываю, возвращаюсь и ничего не происходит
0 -
Часть в банке, часть налом
В крипте не храню
0 -
под матрасом все как положено
0 -
сделай два ноута один для ворка другой для повседневной рутины
0 -
Недавно использовался гарантом, брал схему господина Zlodey.
Сделка через гарант прошла успешна. Гарант работает оперативно. Никаких заминок не было.
Спасибо!
1 -
настал и мой черед дорогие друзья примкнуть к клубу владельцев схемы
0 -
4 часа назад, bushman сказал:Работал по старой, но решил и новую взять, благо финансы позволяют. Так вот, новая намного лучше по все параметрам.
А что в месяц по заработку? Каждый день зарабатываешь?
0 -
10.06.2021 в 11:54, lypatuy сказал:Беру свои слова назад, за день получил около 7к
А что на данный момент по заработку?
0 -
Готов приобрести тему, отпишите по подробнее на счёт неё
0
Вирус в картинке
в Хакинг
Опубликовано: · Изменено пользователем Blackfid
Свежие базы антивирусов и все