Научная статья на тему 'АНАЛІЗ СУЧАСНИХ ДОСЯГНЕНЬ ПРОГРАМНОЇ ІНЖЕНЕРІЇ ДЛЯ СТВОРЕННЯ УНІВЕРСАЛЬНОГО АЛГОРИТМУ ASCII-ART КОНВЕРТАЦІЇ'

АНАЛІЗ СУЧАСНИХ ДОСЯГНЕНЬ ПРОГРАМНОЇ ІНЖЕНЕРІЇ ДЛЯ СТВОРЕННЯ УНІВЕРСАЛЬНОГО АЛГОРИТМУ ASCII-ART КОНВЕРТАЦІЇ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
6
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ASCII аrt / конвертація зображення / мобільний застосунок / проектування / Kotlin / ASCII аrt / конвертация изображения / мобильное приложение / проектирование / Kotlin / ASCII-art / image conversion / mobile application / Kotlin

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — О.М. Міхайлуца, Є.В. Меліхов, Д.К. Безотосний, Ю.О. Лимаренко

У роботі розглядаються переваги використання ASCII-art технологій. Широка доступність і популярність текстових комунікаційних каналів спонукають до використання ASCII-art для представлення зображень. Проаналізовано сучасні підходи створення рисунку у стилі ASCIIart. В ході проведеного дослідження були показані різні способи створення ASCII-рисунків за допомогою комп'ютерних програм. Виявлено ефективні сучасні алгоритми конвертації зображень у ASCII-формат. Запропоновано досконалий алгоритм конвертації довільного зображення у ASCII-формат, який надає можливість оцінити всі переваги ASCII-art, такі як: невеликий розмір рисунку, універсальність, інтернаціональність. Спроектовано та розроблено досконалий та зручний мобільний застосунок, що надає можливість завантаження цільового зображення з внутрішнього сховища або миттєвого фото з камери та оптимізує процес конвертації зображень в ASCII-art. Спроектована система є програмним додатком, який надає більш розширений функціонал порівняно з існуючими аналогами, та незалежним продуктом, який не базується на будь-яких існуючих системах. Для створення програмного застосунку використана статично типізована об’єктно орієнтована мова програмування Kotlin, у якості інтегрованого середовища розробки обрано AndroidStudio. Додаток призначено для одноосібного користування. Алгоритм конвертації зображень у ASCII-формат складається з наступних етапів: підготовка зображення для обробки, що дозволяє усунути некоректне масштабування зображення у самому застосунку; обробка зображення. Проведено експерименти з самостійного створення ASCII-art рисунків. Отримані результати свідчать про те, що створення модулів для конвертації ASCII art зображень дозволить зменшити обсяг інформації, якій зберігається на серверах, залучити нових користувачів завдяки слідуванню молодіжному напрямку разом із дотриманням світових тенденцій та популяризувати ASCII-графіку серед вже зареєстрованих користувачів. Застосування розробленого додатку дозволить творчим особистостям розширити шляхи самореалізації за допомогою сучасних технологій долаючи обмеження, спричинені початком глобальної пандемії COVID-19. Рисунки символами – це універсальний засіб спілкування, покликаний поєднати людство, подолати бар'єри природних мов та державні кордони.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

АНАЛИЗ СОВРЕМЕННЫХ ДОСТИЖЕНИЙ ПРОГРАММНОЙ ИНЖЕНЕРИИ ДЛЯ СОЗДАНИЯ УНИВЕРСАЛЬНОГО АЛГОРИТМА ASCII-ART КОНВЕРТАЦИИ

В работе рассматриваются преимущества использования ASCII-art технологий. Широкая доступность и популярность текстовых коммуникационных каналов побуждают к использованию ASCII-art для представления изображений. Проанализированы современные подходы к созданию рисунка в стиле ASCII-art. В ходе проведенного исследования были показаны разные способы создания ASCII-рисунков с помощью компьютерных программ. Выявлены эффективные современные алгоритмы конвертации изображений в формат ASCII. Предложен совершенный алгоритм конвертации произвольного изображения в формат ASCII, который позволяет оценить все преимущества ASCII-art, такие как: небольшой размер рисунка, универсальность, интернациональность. Спроектировано и разработано универсальное мобильное приложение, которое дает возможность загрузки целевого изображения из внутреннего хранилища или мгновенного фото с камеры и оптимизирует процесс конвертации изображений в ASCII-art. Для создания программного приложения использован статически типизированный объектно-ориентированный язык программирования Kotlin, в качестве интегрированной среды разработки выбрана AndroidStudio. Приложение предназначено для единоличного использования. Алгоритм конвертации изображений в ASCII-формат состоит из следующих этапов: подготовка изображения для обработки, что позволяет устранить некорректное масштабирование изображения в самом отношении; обработка изображения. Проведены эксперименты по самостоятельному созданию ASCII-art рисунков. Полученные результаты свидетельствуют о том, что создание модулей для конвертации ASCII art изображений позволит снизить объем информации, хранящейся на серверах, привлечь новых пользователей благодаря следованию молодежному направлению вместе с соблюдением мировых тенденций и популяризировать ASCII-графику среди уже зарегистрированных пользователей. Применение разработанного приложения позволит творческим личностям расширить пути самореализации с помощью современных технологий, преодолевая ограничения, вызванные началом глобальной пандемии COVID-19. Рисунки символами – это универсальное средство общения, призванное соединить человечество, преодолеть барьеры естественных языков и государственные границы.

Текст научной работы на тему «АНАЛІЗ СУЧАСНИХ ДОСЯГНЕНЬ ПРОГРАМНОЇ ІНЖЕНЕРІЇ ДЛЯ СТВОРЕННЯ УНІВЕРСАЛЬНОГО АЛГОРИТМУ ASCII-ART КОНВЕРТАЦІЇ»

УДК 004.925 https://doi.org/10.35546/kntu2078-4481.2022.1.6

О.М. М1ХАЙЛУЦА

Запорiзький нацiональний унiверситет, м. Запорiжжя

ORCID: 0000-0003-2935-7997

ев. мел1хов

Запорiзький нацюнальний унiверситет, м. Запорiжжя

ORCID: 0000-0002-9856-9291 Д.К. БЕЗОТОСНИЙ

Запорiзький нацiональний ушверситет, м. Запорiжжя

Ю.О. ЛИМАРЕНКО

Запорiзький нацiональний унiверситет, м. Запорiжжя

ORCID: 0000-0002-1643-6939

АНАЛ1З СУЧАСНИХ ДОСЯГНЕНЬ ПРОГРАМНО1 1НЖЕНЕРП ДЛЯ СТВОРЕННЯ УН1ВЕРСАЛЬНОГО АЛГОРИТМУ ASCII-ART КОНВЕРТАЦП

У poöomi розглядаються переваги використання ASCII-art технологш. Широка доступтсть i популярнкть текстових комунжацшних каналiв спонукають до використання ASCII-art для представлення зображень. Проаналгзовано сучасн тдходи створення рисунку у ^wi ASCII- art. В ходi проведеного до^дження були nоказанi ргзш способи створення ASCII-рисунюв за допомогою комп'ютерних программ. Выявлено ефективш сучасш алгоритмы конвертацИ зображень у ASCII-формат. Запропоновано досконалий алгоритм конвертацИ довшьного зображення у ASCII-формат, який надае можливкть оцiнити всi переваги ASCII-art, так як: невеликий розмiр рисунку, утверсальтсть, ттернацюнальтсть.

Спроектовано та розроблено досконалий та зручний мобшьний застосунок, що надае можливкть завантаження цшьового зображення з внутршнього сховища або миттевого фото з камери та оптимгзуе процес конвертацИ зображень в ASCII-art. Спроектована система е програмним додатком, який надае бшьш розширений функцiонал порiвняно з кнуючими аналогами, та незалежним продуктом, який не базуеться на будь-яких кнуючих системах. Для створення программного застосунку використана статично типизована об'ектно орiентована мова програмування Kotlin, у якостi iнтегрованого середовища розробки обрано AndroidStudio. Додаток призначено для одноосiбного користування. Алгоритм конвертацИ зображень у ASCII-формат складаеться з наступних етатв: тдготовка зображення для обробки, що дозволяе усунути некоректне масштабування зображення у самому застосунку; обробка зображення.

Проведено експерименти з самосттного створення ASCII-art рисунюв. Отримаш результати свiдчать про те, що створення модулiв для конвертацИ ASCII art зображень дозволить зменшити обсяг шформацИ яюй зберiгаеться на серверах, залучити нових користувачiв завдяки ^iдуванню молодiжному напрямку разом iз дотриманням свiтових тенденцш та популяризувати ASCII-графiку серед вже зареестрованих користувачiв. Застосування розробленого додатку дозволить творчим особистостям розширити шляхи самореалiзацii за допомогою сучасних технологш долаючи обмеження, спричинен початком глобально'1' пандемИ COVID-19. Рисунки символами - це утверсальний зааб спшкування, покликаний поеднати людство, подолати бар'ери природних мов та державы кордони.

Ключовi слова: ASCII аrt, конвертацiя зображення, мобшьний застосунок, проектування, Kotlin.

Е.Н. МИХАЙЛУЦА

Запорожский национальный университет, г. Запорожье

ORCID: 0000-0003-2935-7997 Е.В. МЕЛИХОВ

Запорожский национальный университет, г. Запорожье

ORCID: 0000-0002-9856-9291

Д.К. БЕЗОТОСНЫЙ

Запорожский национальный университет, г. Запорожье

Ю.А. ЛЫМАРЕНКО

Запорожский национальный университет, г. Запорожье

ORCID: 0000-0002-1643-6939

АНАЛИЗ СОВРЕМЕННЫХ ДОСТИЖЕНИЙ ПРОГРАММНОЙ ИНЖЕНЕРИИ ДЛЯ СОЗДАНИЯ

УНИВЕРСАЛЬНОГО АЛГОРИТМА ASCII-ART КОНВЕРТАЦИИ

В работе рассматриваются преимущества использования ASCII-art технологий. Широкая доступность и популярность текстовых коммуникационных каналов побуждают к использованию ASCII-art для представления изображений. Проанализированы современные подходы к созданию рисунка в стиле ASCII-art. В ходе проведенного исследования были показаны разные способы создания ASCII-рисунков с помощью компьютерных программ. Выявлены эффективные современные алгоритмы конвертации изображений в формат ASCII. Предложен совершенный алгоритм конвертации произвольного изображения в формат ASCII, который позволяет оценить все преимущества ASCII-art, такие как: небольшой размер рисунка, универсальность, интернациональность.

Спроектировано и разработано универсальное мобильное приложение, которое дает возможность загрузки целевого изображения из внутреннего хранилища или мгновенного фото с камеры и оптимизирует процесс конвертации изображений в ASCII-art. Для создания программного приложения использован статически типизированный объектно-ориентированный язык программирования Kotlin, в качестве интегрированной среды разработки выбрана AndroidStudio. Приложение предназначено для единоличного использования. Алгоритм конвертации изображений в ASCII-формат состоит из следующих этапов: подготовка изображения для обработки, что позволяет устранить некорректное масштабирование изображения в самом отношении; обработка изображения.

Проведены эксперименты по самостоятельному созданию ASCII-art рисунков. Полученные результаты свидетельствуют о том, что создание модулей для конвертации ASCII art изображений позволит снизить объем информации, хранящейся на серверах, привлечь новых пользователей благодаря следованию молодежному направлению вместе с соблюдением мировых тенденций и популяризировать ASCII-графику среди уже зарегистрированных пользователей. Применение разработанного приложения позволит творческим личностям расширить пути самореализации с помощью современных технологий, преодолевая ограничения, вызванные началом глобальной пандемии COVID-19. Рисунки символами - это универсальное средство общения, призванное соединить человечество, преодолеть барьеры естественных языков и государственные границы.

Ключевые слова: ASCII аН, конвертация изображения, мобильное приложение, проектирование,

Kotlin.

O. MIKHAILUTSA

Zaporizhzhia National University, Zaporizhzhia

ORCID: 0000-0003-2935-7997 Y. MELIKHOV

Zaporizhzhia National University, Zaporizhzhia

ORCID: 0000-0002-9856-9291 D. BEZOTOSNYI

Zaporizhzhia National University, Zaporizhzhia

Y. LYMARENKO

Zaporizhzhia National University, Zaporizhzhia

ORCID: 0000-0002-1643-6939

ANALYSIS OF MODERN ADVANCES IN SOFTWARE ENGINEERING FOR CREATING A UNIVERSAL ASCII-ART CONVERSION ALGORITHM

The paper considers the advantages of using ASCII-art technologies. The wide availability and popularity of textual communication channels encourages the use of ASCII-art to represent images. Modern approaches to creating a drawing in the ASCII-art style are analyzed. In the course of the study, various ways of creating ASCII drawings using computer programs were shown. Efficient modern algorithms for converting images into ASCII format have been identified. A perfect algorithm for converting an arbitrary image into ASCII format is proposed, which allows you to evaluate all the advantages of ASCII-art, such as small size of the picture, universality, internationality.

Designed and developed a perfect and convenient mobile application that allows you to download the target image from the internal storage or instant photo from the camera and optimizes the process of converting images to ASCII-art. The designed system is a software application that provides more advanced functionality than existing analogues and is an independent product that is not based on any existing systems. To create a software application, a statically typed object-oriented programming language Kotlin was used, and AndroidStudio was chosen as an integrated development environment. The application is intended for sole use. The algorithm for converting images into an ASCII format consists of the following steps: preparing an image for processing, which makes it possible to eliminate incorrect image scaling in the ratio itself and image processing.

Experiments were carried out on the independent creation of ASCII-art drawings. The obtained results indicate that the creation of modules for converting ASCII art images will reduce the amount of information

stored on servers, attract new users by following the youth direction along with global trends and popularize ASCII graphics among already registered users. The use of the developed application will allow creative individuals to expand the ways of self-realization with the help of modern technologies, overcoming the limitations caused by the onset of the global COVID-19 pandemic. Drawings with symbols are a universal means of communication designed to connect humanity, overcome the barriers of natural languages and state borders.

Keywords: ASCII-art, image conversion, mobile application, Kotlin.

Постановка проблеми

Технолопчш, шновацшш процеси та вщкриття мають колосальний вплив на розвиток суспшьства та наше повсякденне життя. Сучасш науков! вiдкриття змушують забути про важливють творчостi. 1сторично пiдтверджено, що люди створюють мистецтво для будь-яко! ново! технологи. Одним i3 прикладав цього е мистецтво, створене для спшкування за допомогою рисунков. У раз!, коли необхiдно вiдправити не деталiзоване зображення в чат-форyмi без тдтримки медiа файлiв або збертати його в класичнiй реляцiйнiй базi даних, можна використовувати застосунки, яш конвертують звичайну картинку у набiр текстових символiв - ASCII-графiкy. У сучасному цифровому свiтi важко уникнути мистецтва ASCII. Це i смайлики, i аватарки, i iнтернет меми, а також фотографп, зробленi з тексту: букв, цифр i спещальних символiв з таблицi Юнiкодy. Актуальшсть у тому, що мистецтво створення картинок iз знаков продовжуе розвиватися, попри появу потужних графiчних редакторiв. З розвитком соцiальних мереж мистецтво малювати символами набувае все бшьшо! попyлярностi у нас у кра!ш та у свiтi, адже малюнки символами - це ввдмшний споаб висловити сво! емоцп, це мова, яка зрозумша без перекладу.

Сьогодш спецiалiстами в областi iнформацiйних технологш розробляються мобiльнi додатки, як1 дозволяють вирiшyвати величезну к1льк1сть завдань. Протягом останшх рок1в по-казник, що характеризуе рiвень запиту на мобiльнi пристро!, постiйно зростае. Така статистика дозволяе зробити висновок про те, що розробка мобшьних додатшв е актуальною i доцiльною.

Отже перед роботою ставиться задача аналiзy сучасних технологш створення рисунку у стил! ASCII- art, а також !х застосування для проектування системи конвертаци довшьного зображення у ASCII-формат.

Аналiз останшх дослвджень i публiкацiй

Виникнення стандарту ASCII (American Standard Code for Information Interchange) датуеться 60-ми роками XX столггтя. Вш е формою образотворчого мистецтва, що використовуе символи ASCII для представлення зображень [1]. При цьому застосовуеться палггра, яка складаеться з буквених, цифрових символiв та знаков пунктуацп з 95 символiв таблицi ASCII [2].

У перших поколшнях комп'ютерiв вже були можливосп ввдображати графiкy. Популярним було вiдображення графiки за допомогою текстових символiв та виведення отриманих зображень на екран термiналy та принтер. На сучасному етат розвитку комп'ютерно! технiки та мережевих систем юнуе велика к1льк1сть формат1в та можливостей для передачi фотознiмкiв та малюншв. Однак досить часто виникае необхшшсть для вiдтворення зображень у «незвичному» текстовому форматi, що викликае цiлy низку складних технiчних проблем. Зрозумшим постае бажання автоматизацп подiбного перетворення, для реал!заци чого в останш роки науковцями запропоновано декшька методiв, пiдходiв та алгоритмiв. Один з таких пiдходiв, а саме автоматичне перетворення бiнарних зображень у формат ASCII було розглянуто у робот [3] з точки зору проблеми оптим!зацп. Застосовувалося невiд'емне матричне розкладання з метою перетворення чорно-бших зображень в ASCII-малюнки.

1ншим переспективним тдходом для автоматичного створення ASCII-зображень, який дослiджyвався авторами у робот! [4], е застосування структур. Його сутшсть полягае в апроксимацп структури основно1 лшп вмiстy еталонного зображення з формою символiв. З оглядом на людське сприйняття зображень, розроблена схема !х видiлення, яка базуеться на моделi конгрyентностi фаз. Використання штучного iнтелектy для пiдвищення якосп автоматизованого перетворення дослiджено у робот! [5], зокрема навчання згортково1 мереж! проводилося на малюнках художников.

Бшьш складним завданням для ASCII-art як форми мистецтва е перетвореня фотографш, оск1льки досить важко у цьому випадку знаходити основну структуру для вщгворення. Подоланню ще1 проблеми присвячена стаття [6], у як1й автори пропонують новий алгоритм модуляцп для вшокремлення структури зображення вш текстури.

Ва перерахованi вище шновацп дозволяють конвертувати ASCII-art зображення швидше i зрyчнiше. Бурхливий розвиток соцiальних мереж та месенджерiв, а також !х домiнyвання у мобшьних пристроях зобумовлюють створювати застосунки, як1 базуються на мобшьних платформах Android та IOS. Проектування та розробка досконалого та зручного програмного застосунку надасть можливють оцшити ва переваги ASCII-art, а саме:

• невеликий розм!р рисунку [7];

• ушверсальшсть [8];

• штернацюнальшсть [9].

Анал1з сучасних nidxodie до створення ASCII-art

На сьогодшшнш день icHye достатньо лгтератури, що описуе проблему конвертацп довiльного зображення, icHye також кiлька додаткiв, що вирiшyють дану задачу, наприклад додаток вщ команди розробникiв «N Studio» - Ascii Art Generator, застосунок для конвертацп зображень у ASCII-art формат у виглядi тексту або картинки - ASCII Image Generator, програмний додаток для конвертацп зображень у ASCII-art формат, якш тдтримуе конвертування вхщного зображення у текст або картинку - Photo to ASCII Text Art.

До найбшьш суттевих недолЫв розглянутих застосунк1в можна вiднеcти:

• Вiдcyтнicть можливоcтi конвертацп зображення у текст (вихвдт файли створюються лише у формат зображень.

• Вщсутшсть можливоcтi налаштування конвертацп (перетворення фактично icнyючого зображення у ASCII-art без функцп вибору cимволiв або режимiв).

• Меню налаштувань надто неiнформативне. Наприклад, немае необхвдносп налаштування кольору cимволiв, адже ASCII-art повинно збертати вiдтiнки базового зображення без 1хньо1 змiни. А налаштування кiлькоcтi cимволiв взагалi може бути автоматичним (у тому випадку, коли користувач власноруч чiтко визначить бажат символи, 1х к1льк1сть буде визначена виходячи з перелiкy, а у випадку програмного заповнення - автоматично, виходячи з самого зображення).

• Недостатня яшсть цiльового зображення. Шсля виконання конвертацп картинка не мае високо! чiткоcтi та eдноcтi. Можна чгтко розрiзнити дефекти (у виглядi горизонтальних смуг), як1 на вхщному зображеннi вiдcyтнi (можливо наявнi недосконалосп або помилки у роботi алгоритму).

• Вщсутшсть зручного iнcтрyментy для форматування зображення. Пicля обрання вхщного зображення у cерединi екрану з'являеться область видшення. Проте, можливicть пересування само! зони по робочiй поверхш вiдcyтня.

Вивчивши icторiю тестових малюншв, провiвши експерименти з cамоcтiйного створення ASCIIart i знайшовши застосування цього виду мистецтва в сучасному cвiтi 1нтернету, можна сказати, що ASCII-art сьогодш затребуване в рекламi та в cоцiальних мережах.

Формулювання мети дослiдження

Метою дослiдження е вивчення переваг icнyючих аналогiв та методiв конвертацп зображень у ASCII-формат для проектування та розробки ушверсального мобiльного застосунку, що надае можливють завантаження цiльового зображення з внутршнього сховища або миттевого фото з камери та оптимiзye процес конвертацп зображень в ASCII-art.

Викладення основного MaTepia^y дослiдження

Використання сучасних досягнень програмног тженери для створення досконалого алгоритму ASCII-art конвертаци

Застосування чи модифжащя юнуючих ршень, зважаючи на варпсть !х придбання та надлишкову або мicцями недостатню фyнкцiональнicть, не е розумним ршенням для виршення поставлених задач. Доцiльним е розроблення програмного комплексу для яшсно! та зручно! конвертацп довiльного зображення у ASCII-формат, дiаграма варiантiв використання для якого наведена на рисунку 1.

Рис.1. Дiaгpaмa BapiamiB використання

Спроектована система е програмним додатком, який надае бiльш розширений фyнкцiонал порiвняно з юнуючими аналогами, та незалежним продуктом, який не базуеться на будь-яких юнуючих системах i вiдповiдаe наступним фyнкцiональним вимогам:

• завантаження початкового зображення для конвертацп з внутршнього сховища або миттевого фото з камери;

• можливicть конвертацп обраного зображення в необхщний графiчний формат або в текстовий файл;

• збереження результату (вихщного файлу) до внyтрiшнього сховища (в довшьну директорiю на пристро1);

• копiювання результату конвертацп (вихщного зображення або тексту) у буфер обмiнy;

• налаштування опцiй конвертацп цшьового зображення, а саме шрифту, розмiрy cимволiв та накреслення тексту;

• шформування клieнта про стан виконання конвертацп (перегляд стану конвертацп за допомогою iндикаторy виконання).

Додаток призначено для однооабного користування, тобто у шформацшнш cиcтемi е лише один клас з можливостями користувача.

Алгоритм конвертацп зображень у ASCII-формат складаеться з наступних етапiв:

• тдготовка зображення для обробки;

• обробка зображення.

Вхщними даними для конвертацп завжди е зображення та набiр cимволiв, а вих1дними даними алгоритму е вщформатований текст. Однак слад вiдзначити, що користувачам результат щкавий саме у форматi зображення. Саме тому перед завершенном етапу перетворення вхщних даних у вихiднi, отриманий текст друкуеться на екранi у виглядi картинки. Хоча, якщо е така необхщшсть, результат можна вщобразити i у форматi текстового рядку.

Запропонована верciя алгоритму була реалiзована для мобiльних пристро1в пiд керуванням ОС «Android». Перша частина тдготовки зображення для конвертацп пов'язана з усуненням проблеми, яка стосуеться вщмшносп cпiввiдношення довжини та ширини екрану в рiзних пристроях. Оск1льки ця проблема призводить до некоректного масштабування зображення у самому застосунку, користувач власноруч обирае прямокутну область вхщного зображення, довжина та ширина яко1 прямо пропорцiйнi параметрам екрану конкретного пристрою.

Друга частина тдготовки зображення для конвертацп полягае у порiвняннi сшввщношення ширини вхiдного зображення та екрану пристрою у ткселях за допомогою формули:

screenWidti

imageWidth <-,

scale

де image Width - ширина входного зображення, screenWidth - ширина екрану застосунку, а scale -це число, яке позначае ширину символу моноширинного шрифту певного розмiрy (у застосунку використовуються значення 12 для розмiрy шрифту, якому вщповщае значення 7 для змшно1 scale).

У раз!, якщо умова виконуеться, то зображення залишаеться без змш. В шшому випадку зображення перемаштабуетьсяв нов! розм!ри, а саме:

screenWidth

resultWidth < ■

scale imageHeight

resultHeight < resultWidth

imageWidth

де resultWidth - ширина вихвдного зображення, screenWidth - ширина екрану застосунку, scale -це число, яке позначае ширину символу моноширинного шрифту певного розм!ру (у застосунку використовуються значення 12 для розм!ру шрифту, якому вщповщае значення 7 для змшно1 scale), resultHeight - висота вихщного зображення, imageHeight - висота вхщного зображення.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Процес обробки тдготованого зображення полягае у необхвдносп розбиття усього зображення на ком!рки розм!ром 1х2 тксел!в. По-суп, другий (нижнш) тксель в ком!рщ !гноруеться, оск1лькн якщо розбити зображення на квадратш ком!рки i зашнювати кожну символом ASCII, який умовно займае 2 ком!рки, то вихвдне зображення вийде в два рази бшьшим за вертикаллю. У внутршньому цикл! виконуеться прохщ по ком!ркам в рядку зл!ва на право, а у зовшшньому цикл! виконуеться прохщ по рядкам зверху вниз. На конкретнш ггерацд потр!бно замшити два ткселя в ком!рщ на деякий символ !з вхщного рядку. Процес роботи алгоритму вщбуваеться наступним чином. Береться перший тксель ком!рки та переводиться у Grayscale mode. При цьому утворюеться Grayscale picture - зображення, у якому р!зш кольори передаються за допомогою вщпншв арого кольору. Так як значення ткселю - це цше число, то перш! два бии позначають значення складово1 blue, наступш два - складово1 green, останш два - складово1 red. Виконавши видшення цих значень на змшш, перетворення ткселя в Grayscale mode здшснюеться за формулою:

RGB[a] to Gray : Y ^ 0.299 • R + 0.587 • G + 0.114 • B

Отримане значення знаходиться в д!апазот в!д 0 до 255, де 0 вщповщае бшому кольору, а 255 -чорному, кр!м того, чим менше отримане значення, тим вщпнок арого свилший, а чим бшьше -темтший. Якщо провести аналопю з символами ASCII, то деяш з них займають бшьшу площу в сво1й ком!рщ i здаються «темтшими», а деяк1 займають меншу площу у пор!внянт з шшими i здаються «свилшими». Обравши масив таких символ!в, наприклад у шлькосп n, i ввдсортувавши !х в!д найтемтшого до найсвилшого, роздшивши 255 на n пром!жк1в, де порядковий номер пром!жку буде вщповщати !ндексу в масив! символ!в - можна замшити отримане значення Gray на значення !з масиву, яке вщповщае цьому пром!жку i додати цей символ до результуючого рядку. А у випадку роботи з Colored ASCII, потр!бно зберегти початковий тксель, тобто його кол!р i на етат промальовування тексту замшити чорний кол!р конкретного символу на збережений кол!р ткселя ще1 ком!рки. В юнщ внутршнього циклу, тобто перед новим рядком з ком!рками, в результуючий рядок також потр!бно додати символ к1нця рядку. В результат! отримуемо текст, у якому за рядками записан! символи, кожен з яких вщповщае ком!рщ вхщного зображення.

Спираючись на вищезазначений алгоритм та беруч! до уваги функцюнальш вимоги, для створення програмного застосунку використовуеться статично титзована об'ектно ор!ентована мова програмування Kotlin [10]. Осшльки розроблюваний додаток створювався для застосування на мобшьних пристроях, то у якосп штегрованого середовища розробки обрано Android Studio. Воно е офщшно штегрованим середовищем розробки для створення застосуншв тд операцшну систему Android на основ! IntelliJ IDEA.

Проект програмного забезпечення для системи конвертаци зображень у ASCII-art

Кшцевий продукт являе собою програмний застосунок, який е конвертором зображень у ASCII-формат. В!кно головно1 сторшки мютить назву програмного застосунку, поле виводу мед!а-контенту (у раз! обрання цшьово1 картинки вона буде тут вщображена, а тсля виконання конвертаци буде наведене вихщне зображення). Окр!м цього, в!кно головно1 сторшки мае чотири функцюнальш кнопки. Три з них знаходяться тд полем виводу мед!а-контенту та ввдповщають безпосередньо за обрання вхщного зображення, його конвертацш та збереження у вигляд! зображення до пам'яп пристрою. Четверта знаходиться у правому верхньому куп екрану та вщкривае субменю з трьох пункпв, за допомогою яких можна: вщкрити в!кно налаштувань, скотювати вихщне зображення у буфер обм!ну у вигляд! картинки або у текстовому формат!.

Перед виконанням конвертаци користувач обирае вх1дне зображення (SELECT) та бажану картинку за допомогою системних утили' (граф!чний переглядач, файловий менеджер). Шсля ll погодження програмний застосунок надае можливють користувачу виокремити необхщну йому область та завантажити и до додатку. Результатом виконаних дш буде вхщне зображення (поле виводу мед!а-контенту).

Рис.2. Конвертащя зображення у ASCII-art

Шсля цього е можливютъ або вщразу конвертувати зображення у ASCII-art, або попередньо налаштувати параметри конвертацiï (також у програмному застосунку передбачена можливютъ для вибору бажаних функцiй навиъ перед обранням вхiдноï картинки). У разi автоматичного виконання конвертацiï вихвдна картинка одночасно вiдображаетъся у полi виводу медiа-контенту (рис. 2). Вихщне зображення може бути збережене (SAVE) або скопшоване через використання кнопки виклику субменю. Окрiм того, користувач може налаштувати цшьовий файл зпдно власних потреб, адже у рiзних ситуацiях (або в залежносп вiд використовуваноï платформи) у кожного зображення може бути окреме призначення. Для присвоення цiлъовiй картинцi необхщних параметрiв користувач повинен, за допомогою субменю, вщкрити сторiнку налаштуванъ конвертацп вихщного зображення. Пiсля встановлення бажаних характеристик та погодження зi змшами, користувачу знов вiдкриваетъся головна сторшка застосунку.

На вiдкритiй сторiнцi користувач може обрати один з трьох параметрiв (рис. 3):

Рис. 3. Bikiio налаштувань

1. «Colored ASCII» - кольоровий формат вихщного зображення, який мае назву ANSII-art. Його особливють полягае в тому, що ASCII-символи, з яких складаеться картинка, мають вiдтiнки орипнального малюнку, що дозволяе бiльш детально передавати його вмют. Проте, такий файл не можна зберегти у виглядi тексту. Справа в тому, що бшьштсть редакторiв, сервiсiв та платформ тдтримують символи лише чорного кольору, в той час, як зображення ANSII-формату е кольоровим.

2. «Increase contrast of the original image» - збшьшення контрастносп зображення для покращення якосп конвертацii. Використовуеться у випадку, коли вихiдний файл е не дуже чiтким. Подiбна ситуацiя може вiдбутися при використанш картинки iз плавним переходом кольорiв, що не дае змогу людському оку виокремити елементи зображення тсля виконання конвертацп. Задля уникнення цього випадку на вждщй картинцi тдвищуеться рiвень контрастностi (для збереження чггкосп разом iз цим збiльшуеться яскравють), пiсля чого вiдбуваеться звичайний процес конвертацп.

3. «Use custom characters» - задати власнi символи, з яких буде будуватися вихiдна картинка. Ця функцiя може знадобитися при створенш комерцiйного зображення. В цьому випадку, у якосп символiв, яш використовуються при конвертацп, можна задати щось, що пов'язано з замовником ASCIIart. Наприклад, назву тдприемства або рекламованого продукту. Все зображення буде побудоване з використанням зазначених символiв.

Висновки

В ходi проведеного дослiдження були показанi рiзнi способи створення ASCII-рисункiв за допомогою комп'ютерних програм. В данiй роботi було запропоновано досконалий алгоритм ASCII-art конвертацп та розроблено програмний модуль для його реалiзацii. Отриманi результати свщчать про те, що створення модулiв для конвертацп ASCII-art зображень дозволить зменшити обсяг iнформацii, якiй збертаеться на серверах, залучити нових користувачiв завдяки слiдуванню молодiжному напрямку разом iз дотриманням свiтових тенденцiй та популяризувати ASCП-графiку серед вже зареестрованих користувачiв. Застосування розробленого додатку дозволить творчим особистостям розширити шляхи самореалiзацii за допомогою сучасних технологiй долаючи обмеження, спричиненi початком глобальноi пандемп COVID-19. Рисунки символами - це ушверсальний засiб спiлкування, покликаний поеднати людство, подолати бар'ери природних мов та державш кордони.

Список використаноТ лiтератури

1. Lewis A. ASCII 87 Success Secrets - 87 Most Asked Questionson ASCII -What You Need to Know : Emereo Pty Limited, 2014, 80р.

2. Fogelman R. ASCII Graphic Glitch Art : Graphic Glitch Art - Technology + Art + Design : Createspace Independent Publishing Platform, 2013, 372р.

3. O'Grady P.D., Rickard S.T. Automatic ASCII Art Conversion of Binary Images Using Non-Negative Constraints. IET Irish Signals and Systems Conference. IEEE, 2008, pp.186-191.

4. Xu X., Zhang L., Wong T. Structure-based ASCII art. ACM Transactions on Graphics. IEEE Transactions on Visualization and Computer Graphics. 2010, vol.29, no.4, pp.52:1-52:9.

5. Akiyama O. ASCII Art Synthesis with Convolutional Networks. 31st Conference on Neural Information Processing Systems. NIPS, 2017, pp.74-79.

6. Xu X., Zhang L., Xie M., Liu X., Qin J.,Wong T. ASCII art synthesis from natural photographs. IEEE Transactions on Visualization and Computer Graphics. 2017, vol.23, no.8, pp.1910-1923.

7. Tallón-Ballesteros A.J. Fuzzy Systems and Data Mining VI : Proceedings of FSDM 2020 : IOS Press, 2020, 812р.

8. Desmond Paul H. Computer Art: Ascii Art, Fractal Art, Digital Art, Ars Electronica Center, Digital Media, Interactive Art : Books LLC, 2010, 372р.

9. Majid al-Rifaie M., Ursyn A., Ursyn T. The Art of Coding : The Language of Drawing, Graphics, and Animation : Chapman and Hall/CRC, 2020, 318р.

10. Samuel S., Bocutiu S. Learn Kotlin Programming: A comprehensive guide to OOP, functions, concurrency, and coroutinesin Kotlin 1.3, 2nd Edition : Packt Publishing, 2019, 514р.

References

1. Lewis, A. (2014). ASCII 87 Success Secrets - 87 Most Asked Questionson ASCII -What You Need to Know: Emereo Pty Limited [in English].

2. Fogelman, R. (2013). ASCII Graphic Glitch Art: Createspace Independent Publishing Platform [in English].

3. Tallón-Ballesteros, A.J. (2020). Fuzzy Systems and Data Mining VI: IOS Press [in English].

4. Desmond, P.H. (2010). Computer Art: Ascii Art, Fractal Art, Digital Art, Ars Electronica Center, Digital Media, Interactive Art: Books LLC [in English].

5. Majid al-Rifaie, M., Ursyn, A., Ursyn, T. (2020). The Art of Coding:The Language of Drawing, Graphics, and Animation: Chapman and Hall/CRC-[in English].

6. O'Grady, P.D., Rickard, S.T. (2008). Automatic ASCII Art Conversion of Binary Images Using NonNegative Constraints. IET Irish Signals and Systems Conference ,186-191 [in English]. doi.org/10.1049/cp:20080660.

7. Xu, X., Zhang, L., Wong, T. (2010). Structure-based ASCII art. IEEE Transactions on Visualization and Computer Graphics, 29(4), 52:1-52:9 [in English]. doi.org/10.1145/1833349.1778789.

8. Akiyama, O. (2017). ASCII Art Synthesis with Convolutional Networks. 31st Conference on Neural Information Processing Systems, 74-79 [in English].

9. Xu, X., Zhang, L., Xie, M., Liu, X., Qin, J.,Wong, T. (2017). ASCII art synthesis from natural photographs. IEEE Transactions on Visualization and Computer Graphics, 23(8), 1910-1923 [in English]. doi.org/10.1109/TVCG.2016.2569084.

10. Samuel, S., Bocutiu, S. (2019). Learn Kotlin Programming: A comprehensive guide to OOP, functions, concurrency, and coroutinesin Kotlin 1.3, 2nd Edition : Packt Publishing [in English].

i Надоели баннеры? Вы всегда можете отключить рекламу.