Размер авы для Телеграмм канала

Недавно сидел я в одном сообществе программистов в Telegram и заметил один очень любопытный профиль. Любопытным было следующее — на главном фото у него было изображено нынешнее время. Мне стало жутко интересно как он этого добился, и я решил во что бы то ни стало написать такую же программу.

image

До этого я часто работал с Telegram-ботами при помощи библиотеки PyTelegramBotAPI, поэтому предположил, что такая функция есть в API ботов. Наверняка, это было глупейшее предположение в моей жизни, т.к. фото было на аватарке профиля именно пользователя, а не бота — и вскоре я в этом убедился, не найдя ни одной предпосылки к возможности изменить фото профиля.

Я начал сёрфить интернет и наткнулся на довольно удобный инструмент — telethon. Он как раз и позволял мне заходить в Telegram как юзер, а не как бот. Что ж, полагаю это был самый первый и самый большой шаг к цели. Далее давайте разберем как же именно воссоздать «часы» на нашей аватарке.

Аватарки для ТГ каналов Как вам? #дизайн #ава #аватар #телеграмм

Шаг первый. Получить доступ к входу в Telegram из кода

Переходим по ссылке, вводим номер телефона, после чего получаем код подтверждения. Подробнее об этом написано тут. Итак, мы получаем оттуда две важные для нас вещи — это api_id и api_hash. Создаем файл config.py и вводим туда следующий код:

api_id = api_hash =

Теперь создаем файл main.py в котором пишем:

from telethon import TelegramClient, sync from .config import *

Важно, чтобы main.py и config.py были на одном файловом уровне, т.е. в одной папке иначе строка from .config import * даст ошибку. Класс TelegramClient — это именно то, что позволит нам войти в Telegram в качестве обычного пользователя. Далее в этом же файле пишем следующее:

client = TelegramClient(, api_id, api_hash) client.start()

Таким образом, можно считать, мы залогинились в Telegram. ИМЯ СЕССИИ можете выбрать любое, на свое усмотрение (например, «ананас»). Итак, мы подключились к телеграму. Теперь пора думать о фотографиях…

Шаг второй. Создаем источник фотографий с указанием времени

Пожалуй, этот шаг явился самым легким для меня, т.к. я уже долгое время разрабатывал различное ПО, использующее компьютерное зрение, а следовательно, работа с изображениями стала чем-то обыденным. Тут все просто — устанавливаем библиотеку opencv, позволяющую творить чудеса с фотографиями. Создаем файл utils.py и пишем в ней:

Еще по теме:  Бот в Телеграмме для избавления от одежды

def convert_time_to_string(dt): return f»:»

Данная функция нам нужна, чтобы на фотографии было указано время в формате Ч: ММ(были и другие способы сделать это, но я предпочел именно этот).

Итак, приступаем к созданию самих фотографий. Создаем файл generate_time_images.py и пишем в нем:

from .utils import * import cv2 import numpy as np from datetime import datetime, timedelta

Этих библиотек должно хватить нам для создания фотографий с указанием времени. Далее пишем функцию для получения черного фона, на котором мы будем писать время:

Сделал аватарки для телеграмм канала Как вам Отличный отзыв #дизайн #оформление #ава #телеграмм


def get_black_background(): return np.zeros((500, 500))

Теперь нужно будет пройтись циклом по каждой минуте в сутках и сгенерировать фотографию с указанием времени. Заранее создайте папку time_images/ куда будете сохранять фотографии. Итак, пишем:

start_time = datetime.strptime(«2019-01-01», «%Y-%m-%d») # Можете выбрать любую дату end_time = start_time + timedelta(days=1) def generate_image_with_text(text): image = get_black_background() font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(image, text, (int(image.shape[0]*0.35), int(image.shape[1]*0.5)), font, 1.5, (255, 255, 0), 2, cv2.LINE_AA) return image while start_time < end_time: text = convert_time_to_string(start_time) image = generate_image_with_text(text) cv2.imwrite(f»time_images/.jpg», image) start_time += timedelta(minutes=1)

Для создания колеекции фотографий осталось сделать только одно — запустить generate_time_images.py. После запуска мы видим, что в папке time_images/ появилось множество фотографий. Должны получиться примерно такие фотографии:

image

Шаг третий. Обновляем фото каждую минуту

У telethon есть очень удобная штука — называется UploadProfilePhotoRequest. Импортируем ее в наш ранее написанный main.py:

from telethon.tl.functions.photos import UploadProfilePhotoRequest, DeletePhotosRequest from datetime import datetime from .utils import *

Разумеется, мы не должны обновлять аватарку в каждый момент времени — достаточно делать это раз в минуту. Для этого мы должны знать момент, когда заканчивается старая минута и начинается новая — именно в этот момент мы и поменяем фотку. Пишем еще одну небольшую функцию в utils.py:

def time_has_changed(prev_time): return convert_time_to_string(datetime.now()) != prev_time

Да, да, мы передаем в нее строку со временем предыдущего обновления аватарки. Конечно, и тут были другие способы реализации, но писал я это все «на скорую руку», поэтому сильно об оптимизации не задумывался. Продолжаем заполнять наш main.py:

prev_update_time = «» while True: if time_has_changed(prev_update_time): prev_update_time = convert_time_to_string(datetime.now()) client(DeletePhotosRequest(client.get_profile_photos(‘me’))) file = client.upload_file(f»time_images/.jpg») client(UploadProfilePhotoRequest(file))

DeletePhotosRequest нам нужен для того, чтобы удалить предыдущие аватарки, чтобы создавался эффект, что мы не добавляем новое фото — оно меняется само собой. Для того, чтобы не перегружать процессор, можно добавить time.sleep(1) в конец цикла(разумеется, импортировав сперва time.py).

Еще по теме:  Где хранятся файлы json и session Телеграмм

Готово! Запустите main.py и ваша аватарка превратится в часы. Как более оригинальный вариант, можете попробовать изменить текст на фотках, например, на такой:

image

UPDATE!

С момента написания данной статьи библиотека telethon стала полностью асинхронной, что вызвало необходимость полностью пересмотреть методы вызова функций в исходниках. В итоге я сел за код и кроме того, что переписал все через async-await на основе asyncio еще и оптимизировал пару вещей. К примеру, теперь не нужно создавать кучу файлов на жестком диске для их отправления — это было огромной и бесполезной тратой ресурсов, больше не буду так делать..
Вот ссылка на репозиторий. Необходимые инструкции по установке уже там.

Источник: habr.com

Размеры изображений для социальных сетей

Все размеры изображений в соцсетях

В размерах изображений для социальных сетей легко запутаться, ведь даже в одной и то же соц.сети требуются разные размеры для разных форматов. Здесь мы расскажем про самые популярные в России ВКонтакте, Одноклассники, Facebook и Instagram.

ВКонтакте

Рекламные объявления в боковой панели, видны только на десктопах.

  • Маленькое изображение — 145 х 85

vk_reklama_bok_145x85

  • Большое изображение — 145 х 165

vk_reklama_bokovoe_145-165

  • Специальный 256 х 256

vk_bok_specialnoe_256x256

Объявления в ленте:

  • Универсальная запись с ссылкой и кнопкой — 537 х 240. Это классический формат: изображение и текст над ним. Возможно использование кнопки с дополнительным призывом к действию. Ссылка может вести на внешний сайт, на страницу в Вконтакте или являться номером телефона, тогда с мобильного устройства можно будет в один клик набрать номер.

vk_reklama_lenta_universalnaja_zapis

vk_reklama_lenta_zapis_s_knopkoj

  • Карусель — 537 х 240. Несколько товаров с соответствующими изображениями и ссылками на различные страницы Вконтакте или разные страницы сайта.

vk_reklama_lenta_karusel

  • Изображение для поста — 700 х 500. Если говорить про обычный пост в своей ленте, то размеры фотографий можно подбирать любые, но именно 700 х 500 позволит избежать искажений на разных устройствах.

vk_post

Оформление профиля

vk_oblozhki_dlja_PK_i_mobile

  • Обложка. Стандартный размер обложки: 1590 х 400. Но он виден только на десктопах, на мобильных устройствах видимая область 1200х400 пикселей. Плюс 83 пикселя сверху и по 140 пикселей по бокам скрывается системными кнопками, поэтому ключевую информацию информацию нужно разместить в центральной части обложки. На иллюстрации эта область не закрашена серым цветом.
  • Фото профиля может быть двух размеров: вертикальное 200х500 и квадратное 200х200. Квадратное фото обрезается в кружок при загрузке, поэтому не стоит выбирать такое изображение, как на примере ниже. Лучше, чтобы главная информация (в виде образа или текста, неважно) была сконцентрирована в центре.
  • 200 х 500
  • Карточки товаров — 834 х 834. Они всегда квадратные.

vk_kartochki_tovarov

Facebook

Объявления в новостной ленте:

  • Изображения для поста — 1200 х 900. Это стандартный размер. Здесь тоже нет жёстких указаний, но такие параметры сохранят картинку от искажений.
Еще по теме:  Статусы для Телеграмма лучшие

photo-v-lente-facebook

  • Кольцевая галерея: квадратные изображения — 1080 х 1080, каждое из которых может иметь собственную ссылку на сайт.

fb_reklama_koltsevaja_galereja

  • Одно изображение — 1200 х 628

fb_reklama_1-Izobrazhenie

  • Слайд-шоу — 1280 х 720. Слайд-шоу — это видео которое автоматически создается Фейсбуков на основе ваших изображений.

fb_reklama_slaid-show

  • Подборка товаров: у обложки подборки ширина должна быть 1080 пикселей, высота чётко не указана, остальные изображения — 600 х 600. Подборка — удобный формат для мобильных устройств. Таким образом вы показываете сразу несколько товаров на экране телефона.

fb_reklama_podborka

Оформление профиля

  • Фото профиля — 170 х 170. Оно «округляется» при показе объявлений и публикаций в других лентах, поэтому, как и в ВК, это нужно учитывать. Также не стоит подбирать картинки с мелкими элементами, так как на смартфонах аватарка уменьшается до 128 х 128, а на некоторых моделях телефонов до 36 х 36.
  • Картинки для товаров — 600 х 600

fb_kartochki_tovarov

  • Обложка — 820 х 312 для ПК и 574 х 312 для смартфонов. Загружать, конечно, нужно первый вариант, но важную информацию размещать посередине (для смартфонов).

fb_oblozhka_PK_i_mobilnij

Instagram

Продвигается через Facebook, поэтому:

Рекламные объявления как на Facebook:

  • Кольцевая галерея — 1080 х 1080. Несколько изображений сменяют друг друга при клике на стрелочку.
  • Одно изображение — 1200 х 628. Стандартный формат рекламного объявления в Инстаграм.
  • Слайд-шоу — 1280 х 720. Это видео, которое создаётся из изображений.
  • Stories — 1080 х 1920

instagram_reklama_stories

Оформление профиля

Здесь не так много элементов: весь профиль состоит из постов и аватарки.

  • Пост — 1080 х 1080. Стандартное изображение должно быть квадратным, но публиковать и другие форматы тоже можно, однако они могут неправильно растянуться или сжаться.
  • Аватарка — 110 х 110. Она круглая, поэтому подыскивайте изображение, на котором самое важное в центре.

instagram_avatar_i_post

Одноклассники

Здесь есть важный момент: картинки для рекламный кампаний не должны превышать 150 Kb!

Рекламные объявления

  • Мультиформатное размещение — 256 х 256, 1080 х 607 и 600 х 600

ok_reklama_multiformat-256x256 +1080x607 ok-reklama_multiformat-media_600x600 ok-reklama_multiformat-tizery-256x256ok_reklama_multiformat_v_lente1080-607

ok_reklama_tizery_90x75

  • Карусель — 600 х 600

ok_reklama-karusel

  • Out-stream видеосеть NativeRoll Standard — 256 х 256 (маленькая картинка над видео)

ok_NativeRollStandard_256x256

  • Баннер в видео — 1000 х 120

ok_banner_v_video_1000x120

  • Баннер в соц.сетях — 240 х 400

ok_banner_v_soc.set.240-400

  • Для продвижения магазина — 500 х 500

ok_kartochki_tovarov_500-500

ok_reklama_tizer_90x75

  • Блок в ленте — 1080 х 607

ok_reklama_blok_v_lente1080-607

  • Статьи — 400 х 300

Оформление профиля Одноклассники

  • Для поста рекомендуются размеры 1680 х 1680, но это не обязательно.

ok_profil_post

  • Профиль — 190 х 190 и обложка — 1340 х 320. В Одноклассниках фото профиля не обрезается, поэтому можете не беспокоиться о краях.

Источник: digital-ma.ru

Рейтинг
( Пока оценок нет )
Загрузка ...