Canvas - это круто! - страница 37

 
Реter Konow:

Просто Вы далеки от творческой темы связанной с MQL. Для Вас, небольшие оптимизированные советники - предел ниши, творчества и бизнеса на MQL. А тема эта - лишняя получается.

Я не буду спорить, потому что сам понял насколько мелко плавает потребительская публика в Маркете. Но, "творческий заряд" привел меня к моим достижениям независимо от того, нужно это им или нет. Сейчас этот заряд кончился. Больше графикой не занимаюсь.

Не могу, Пётр, с тобой согласится. Игорь - качественный программист, у которого можно многому поучиться.
А применение стандартного формата Gif конечно же более целесообразно, чем пытаться внедрять собственный формат и алгоритм сжатия. 
Это гораздо удобнее - создал и отредактировал гиф удобным привычным способом  и вклинил анимацию в свою программу. 
И, кстати, патенты на Гиф закончились в 2004 году, т.к. можно пользоваться без проблем.
Разрабатывать свою mql-программу записи гиф вообще не вижу смысла, т.к. существующие скрин рекодеры (например  Camtasia Studio) с этим справятся лучше.

А вот написать библу для внедрения анимированных гифок в окно МТ5 было бы неплохо. Тем более это не очень сложная задача. Посмотрев бегло на структуру формата, думаю за 1-2 дня можно справиться.

ЗЫ Ох, Петр, заменить бы твою гордиливую спесь и похвальство скромностью, цены бы тебе не было.

 
Nikolai Semko:

Не могу, Пётр, с тобой согласится. Игорь - качественный программист, у которого можно многому поучиться.
А применение стандартного формата Gif конечно же более целесообразно, чем пытаться внедрять собственный формат и алгоритм сжатия. 
Это гораздо удобнее - создал и отредактировал гиф удобным привычным способом  и вклинил анимацию в свою программу. 
И, кстати, патенты на Гиф закончились в 2004 году, т.к. можно пользоваться без проблем.
Разрабатывать свою mql-программу записи гиф вообще не вижу смысла, т.к. существующие скрин рекодеры (например  Camtasia Studio) с этим справятся лучше.

А вот написать библу для внедрения анимированных гифок в окно МТ5 было бы неплохо. Тем более это не очень сложная задача. Посмотрев бегло на структуру формата, думаю за 1-2 дня можно справиться.

ЗЫ Ох, Петр, заменить бы твою гордиливую спесь и похвальство скромностью, цены бы тебе не было.

1. Насколько Игорь хороший программист я не имею понятия. Да я его и не хаял. Но, если хороший, то пусть.

2. Если ты сможешь использовать стандартный формат, - молодец, я бы не взялся. Мне думается, что это сложнее, чем свой упрощенный написать. Повторю, - ты сэкономишь силы на гифах, в которых не нужно обрабатывать кадры. То есть, снял и сразу перенес в MQL-программу. НО - если нужно составить инструкцию и покадрово обработать изображения - стандартный гиф тебе не поможет. В смысле, обработка гифа должна через редактор быть, а ты туда каждый кадр последовательно загружать будешь и так формировать видео-ряд? И механизм воспроизведения будет сложнее. Гораздо сложнее. Но, давай проверим.

3. Разрабатывать свои скрин-рекордеры в советниках конечно бред.

ЗЫ. Скромность - не мой конек.)))

 

Николай, в общем, эксперимент вскрытия стандартного формата .gif и его интеграции в mql-программу торжественно начат! Желаю удачи.

Зы. Если получиться, ты Молодец с большой буквы, если нет, тоже, но с маленькой.)) Попытка - не пытка.

В конце, можно будет сравнить трудозатраты по созданию простой цикличной 10-кадровой видео-инструкции, и сложность механизма чтения и воспроизведения.

 
Andrey Dik:

https://www.mql5.com/ru/blogs/post/728564

вот на этой странице в блоге как сделал иллюстрацию (картинку)? Как ты умудрился разместить на веб-странице изображение? уму не постижимо - КАК?!!!


Хорош флудить. Сам же извинялся.
 
Andrey Dik:

нет уж, тут дело принципа..... надеюсь с божьей помощью и коллегами поможем тебе встать на путь истинный, ты ж парень хороший.

Давай принципы в личке обсудим, если хочешь. Здесь будем поддерживать порядок.
 
Николай, этот стандартный гиф нужно ведь в читабельный файл переносить, а из него в массив. Там могут быть привязки к операционке. Тебе придется распаковывать гиф-файл и разделять, где данные картинок, где индексация палитры, где данные по воспроизведению и данные операционки или другие штатные данные. Короче, "мусора" в таком файле будет много, а его еще нужно расшифровать и взять нужное. Не знаю, как ты справишься. 
 
Andrey Dik:

ответь пожалуйста на вопрос - как ты разместил картинку в своем блоге. простой вопрос, ответь и покончим с этим.

Обычно - взял и разместил. Андрей, ты просто объясни, чего тебя не устраивает. Только без флуда.

Если тебя задело мое мнение про скрин-рекордеры в советнике, то это только потому, что ты не очень хорошо разбираешься в вопросах канваса (пока). Я же в генетических алгоритмах тоже не шарю, и не заявляю ничего. А если и заявляю, быстро признаю ошибки. Канвас из МТ нельзя просто взять, и перевести в какой то виндоус видео-формат. Это СЛОЖНО. Очень сложно. И бессмысленно. Без обид.

 
Andrey Dik:

Пётр, ты не просто "взял и разместил", а поместил в буфер обмена скриншот кнопкой PrintScrin, вставил из буфера в Paint, обрезал лишнее и сохранил в файл графического формата, а уже потом вставил в свой блог.

То есть активно пользуешься средствами Windows и общепринятыми стандартами графических данных, без этого бы ты не смог донести до пользователя информацию о своих деяниях программах.

Так вот, если бы ты делал всё это на канвасе, то мог бы просто командой в своей программе сохранить картинку (или даже видео!) без использования сторонних программ.

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

1. Картинку в формате .bmp - без проблем. Но видео из картинок сохранить в формате .avi (или других)- очень сложно. Я за такое не возьмусь, потому что "игра не стоит свеч". Видео можно легко записать любым рекордером, а средства MQL для этого не предназначены. Можно воспользоваться ДЛЛ, но зачем? Берем рекордер и записываем что нужно. Разработка подобного механизма на MQL- очень трудоемкое дело. И уж если я так говорю, можешь поверить.))

2. Смысл гифа на mql - короткие видео-инструкции или демонстрации. Николай считает, как и большинство, что можно взять стандартный файл гиф, написать алгоритм чтения и воспроизведения на MQL и готово. Я так не считаю. Есть масса подводных камней. Расшифровка файла, вычленение данных, загрузка в массив, написание механизма чтения/воспроизведения. Это ОЧЕНЬ сложно. Легче сделать свой упрощенный вариант, ведь в инструкциях всего по 10 - 20 кадров. Их обработка занимает час. Зато, они лучше сжимаются, потому что инструкции содержат однообразные цвета. А видео почти не содержит повторяющихся последовательностей цветов. И все кадры отличаются. Поэтому, применяют индексацию цветовой палитры. Чтобы хоть как то сжать объем данных.

 
Реter Konow:

1. Картинку в формате .bmp - без проблем. Но видео из картинок сохранить в формате .avi (или других)- очень сложно. Я за такое не возьмусь, потому что "игра не стоит свеч". Видео можно легко записать любым рекордером, а средства MQL для этого не предназначены. Можно воспользоваться ДЛЛ, но зачем? Берем рекордер и записываем что нужно. Разработка подобного механизма на MQL- очень трудоемкое дело. И уж если я так говорю, можешь поверить.))

2. Смысл гифа на mql - короткие видео-инструкции или демонстрации. Николай считает, как и большинство, что можно взять стандартный файл гиф, написать алгоритм чтения и воспроизведения на MQL и готово. Я так не считаю. Есть масса подводных камней. Расшифровка файла, вычленение данных, загрузка в массив, написание механизма чтения/воспроизведения. Это ОЧЕНЬ сложно. Легче сделать свой упрощенный вариант, ведь в инструкциях всего по 10 - 20 кадров. Их обработка занимает час. Зато, они лучше сжимаются, потому что инструкции содержат однообразные цвета. А видео почти не содержит повторяющихся последовательностей цветов. И все кадры отличаются. Поэтому, применяют индексацию цветовой палитры. Чтобы хоть как то сжать объем данных.

Все почти так, но с точностью до наоборот.
Как раз вся эта рутина с палитрой, упаковкой реализована в гиф.И не надо изобретать никому не нужный велосипед, на котором еще в добавок не понятно, как ездить.
10-20 кадров за час. Ты шутишь? Кому нужно такое "счастье"?
Съемка с экрана небольшого ролика, его редактирование, внедрение тектовых и графических меток, а также конвертация в анимированный гиф занимает считанные минуты в Camtasia.

А внедрение гиф-файла в программу в качестве ресурса проще паренной репы:

#resource  "\\Files\\Dialog.gif" as uchar G[]
struct Gifka
  {
   uchar             format[6];
   short             widht;;
   short             height;
   uchar             mask1;
   uchar             BG;
   uchar             R;
   // и т.д.
  };
Gifka g;
void OnStart()
  {
   CharArrayToStruct(g,G);
   Print("Gif size - "+ string(ArraySize(G))+" bytes");
   Print("Format Gif - "+CharArrayToString(g.format));
   Print("Gif's Widht = "+ string(g.widht));
   Print("Gif's Height = "+ string(g.height));   
  }

о формате можно почитать здесь:
http://home.onego.ru/~chiezo/gif.htm

Файлы:
Dialog.gif  681 kb
GifTest.mq5  3 kb
 
Nikolai Semko:

Все почти так, но с точностью до наоборот.
Как раз вся эта рутина с палитрой, упаковкой реализована в гиф.И не надо изобретать никому не нужный велосипед, на котором еще в добавок не понятно, как ездить.
10-20 кадров за час. Ты шутишь? Кому нужно такое "счастье"?
Съемка с экрана небольшого ролика, его редактирование, внедрение тектовых и графических меток, а также конвертация в анимированный гиф занимает считанные минуты в Camtasia.

А внедрение гиф-файла в программу в качестве ресурса проще паренной репы:

о формате можно почитать здесь:
http://home.onego.ru/~chiezo/gif.htm

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

Почитал твою ссылку на описание формата. Вот почему бы я не взялся за это дело. Там огромное количество нюансов и разбирать их должен алгоритм. Представь алгоритм, разбирающий завал данных из этого формата и определяющий как его воспроизводить. Почитай описание этого формата с этой точки зрения. Уверен, что в С++ есть готовые алгоритмы для этого, но интегрировать их в MQL - не менее сложно.

Поэтому, вопросы остаются прежними:

//-----------------------------------------------

1. Как ты расшифруешь выходной файл?

2. Как скрестишь его нутро со своими канвасными решениями?

3. Интегрировать гиф-файл, еще не значит написать механизм его воспроизведения (который невозможно написать, без расшифровки файла). 

4. В обычном редакторе, ты можешь контролировать цвета фона и деталей, делая их "монолитными", что в разы улучшает сжатие, а в Camtasia такой возможности вроде нет...

5. Редактировать кадры в Camtasia ты будешь примерно столько же времени, а качество редактирования будет хуже, - Camtasia предназначена для другой работы.

//---------------------------------------------

В лучшем случае, ты получишь плохо-сжатые гифки низкого качества изображения, при почти равной затрате сил. Конечно, если речь идет НЕ об абстрактных гифах, а о конкретных 10-ти - 20-ти кадровых инструкциях. 

НО, - это всего лишь мое мнение.

Жду твоей реализации. 

Причина обращения: