aiexandrkotov / ktx Goto Github PK
View Code? Open in Web Editor NEWПреобразование изображений в консольный текст
Преобразование изображений в консольный текст
Как только будет закрыта pascalabcnet/pascalabcnet#1639
Вместе с исправлением, добавить новые методы конвертации цвета для текста.
Поскольку в KeyBlock всё больше и больше данных, для удобства нужно создать строитель класса KeyBlock
Нужно создать зависимость (ну или кучу индусских if'ов) при которой будет переводится цвет битмапа в консольный цвет
@SunSerega, призываю тебя! Если у тебя есть идеи как именно конвертировать в цвет, то пиши их сюда. Банальные (255,0,0,0) в (KTX.Black,KTX.Black,' ') понятно как делать, а с другими что? Я подумал, что нужно создать константу из 16 символов (можно меньше) const Context = ' .:;t08SX%&#@';
, которые как бы будут означать заполненность одного цвета на фоне другого. Но как это реализовать действительно моя головушка пока додумать не может.
Твой код:
{$reference System.Drawing.dll}
uses System.Drawing;
begin
var b := new Bitmap('inp.bmp.jpg.итд.png');
var bd := b.LockBits(new Rectangle(0, 0, b.Width, b.Height), Imaging.ImageLockMode.ReadOnly, Imaging.PixelFormat.Format32bppArgb);
var ptr := bd.Scan0;
var a := new byte[](b.Width * b.Height * 4);
System.Runtime.InteropServices.Marshal.Copy(ptr, a, 0, a.Length);
b.UnlockBits(bd);
end.
Поскольку GetPixel существеннее медленнее, чем алгоритм, что планировался изначально, желательно доработать старый вариант
Добавить try except для создания цвета текста
Доделать преобразование цвета
Для всех методов
Сделать под каждый тип конвертации Color свой тип конвертации SubColor для текста консоли
Если сразу задать список возможных вводов в KTX.Block, то можно не обновлять консоль с вводом неиспользуемых строк.
Класс KeyBlock, аналог класса Block, но с вводом с клавиатуры через Console.ReadKey
Добавить новые методы вывода в консоль рисунков. Вообще, нужно полностью переработать вывод и позволить его с определённых позиций, вывод поверх другого рисунка и так далее.
Issue по багу #7
Исправление try except'ом — не исправление
Нужно найти истинную причину и исправить её. Возможно, это улучшит всю подсистему рисования
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.