Да! спасибо!
Стало гораздо легче дышать... ;)
Точнее откуда плясать, хоть и "текстовый", №1 вариант и просто игрушка.
Но как всегда что-то...
Маленько поправить исходный результирующий текст не проблема,
как и не проблема прочитать, а вот как забить в понимаемый колор это представление 0xd636
всю голову сломал и справку погрыз... чуток... с правого угла... ;)))
*
Читаю текст простой функцией:
string ReadTxtNun(int handle, int num) { string txt; int i, chk; for(i=0; i<num; i++) { if(i+1==num) txt=FileReadString(handle); } return(txt); }
и в цикле пытаюсь назначить цвет:
for(V=0; V<256; V++) { for(H=0; H<256; H++) { cv=StrToInteger(ReadTxtNun(header,H+V)); ObjectCreate("text_"+V+"_"+H,OBJ_LABEL, 0, 0, 0); ObjectSet("text_"+V+"_"+H,OBJPROP_BACK,1); ObjectSet("text_"+V+"_"+H,OBJPROP_CORNER,0); ObjectSet("text_"+V+"_"+H,OBJPROP_XDISTANCE,shH+H); ObjectSet("text_"+V+"_"+H,OBJPROP_YDISTANCE,shV+V); ObjectSetText("text_"+V+"_"+H, ".", 6, "Times New Roman", cv); } }
однако 0.
StrToInteger(); там как одна из попыток, так что не пинайте.
Ибо считал что:
// целочисленные представления
0xFFFFFF // белый
16777215 // белый
0x008000 // зеленый
32768 // зеленый
как раз мой случай, а неявное преобразование сделает своё дело...
Вот что совсем непонятно...
програмка создаёт таки одномерый массив???
#define x_putin13_bmp 256;//width of the picture #define y_putin13_bmp 256;//height of the picture static const unsigned short pic_putin13_bmp[] = {0xd676, ...}
а зачем лейблы если всё равно апи во всю используется ?
//+------------------------------------------------------------------+ //| PaintBMP.mq4 | //| MaStak | //| | //+------------------------------------------------------------------+ #property copyright "MaStak" #property show_inputs //--------------------------------------- extern string FileName="C:\WINDOWS\winnt.bmp"; extern int X=500; extern int Y=350; //--------------------------------------- #define IMAGE_BITMAP 0 #define LR_LOADFROMFILE 16 #define SRCCOPY 13369376 #import "user32.dll" int GetAncestor(int hWnd, int Flags); int LoadImageA (int hInst , string lpsz , int dwImageType,int dwDesiredWidth,int dwDesiredHeight, int dwFlags); int GetWindowDC (int hWnd); int ReleaseDC (int hWnd , int hDC); #import "gdi32.dll" int DeleteObject (int hObject); int BitBlt (int hDestDC,int x , int y, int nWidth, int nHeight, int hSrcDC,int xSrc,int ySrc,int dwRop); int CreateCompatibleDC (int hDC); int DeleteDC (int hDC); int SelectObject (int hDC,int hObject); #import //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start(){ int hDC, hDW, hBitmap, hMT; hMT=GetAncestor(WindowHandle(Symbol(),Period()),2); // hBitmap = LoadImageA(0, FileName, IMAGE_BITMAP, 320, 200, LR_LOADFROMFILE); if(hBitmap == 0) return(0); while(!IsStopped()){ hDW = GetWindowDC(hMT); // Контекст приёмника hDC = CreateCompatibleDC(hDW); // Контекст источника совместимый с приёмником SelectObject (hDC, hBitmap); // Выбрали картинку в контекст BitBlt (hDW, X, Y, 320, 200, hDC, 0, 0, SRCCOPY); // Скопировали DeleteDC (hDC); // Удалили контекст источника ReleaseDC (hMT, hDW); // Освободили контекст приёмника Sleep(1000);} DeleteObject (hBitmap); // Удалили рисунок из памяти return(0);} //+------------------------------------------------------------------+
Ну выше написал: для тренировки! Полезность потом обдумаю.
*
Потому что нужен инструмент ДЛЯ графика и НА графике...
Ещё к тому отработать нюансы типа: считать => обработать (при необходимости) => вывести
А так-же создание "обьектов" из обьектов...
*
Тем не менее за скрипт спасибо!
Ну выше написал: для тренировки! Полезность потом обдумаю.
*
Потому что нужен инструмент ДЛЯ графика и НА графике...
Ещё к тому отработать нюансы типа: считать => обработать (при необходимости) => вывести
А так-же создание "обьектов" из обьектов...
*
Тем не менее за скрипт спасибо!
Я думал с ОАНДЫ собираешься картинки перетаскивать.
Мда...
Что-то ВВП зашифрованный какой-то получается.
или утилитка создаёт массив по своим понятиям...
))) Пикасссо отдыхает.
*
Попутно выяснил что массив и так можно заполнять:
color pic_bmp[] = {0xd4ccb7, 0xd4ccb7, 0xd4ccb7, 0xd4ccb7, 0xd4ccb7, 0xd4ccb7, 0xd4ccb7, 0xd4ccb7, 0xd2cab5, 0xd4ccb7, 0xd4ccb7, 0xd3cbb9, 0xd3cbb6, 0xd3cbb5, 0xd2cab3, ...};
вовремя, а то уж было ексель снарядил в кавычки обувать. "0xd1c9b4",
Однако здравствуйте! (с)
;)
Вот и уважаемый ВВП приобщился к нашему тяжкому трейдерскому делу.
Зорко всматривается в будущее и чутко прислушивается к прошлому...
(правда робко так, сжато, но тем не менее :)))
как это получилось пока не готов ответить, скажу лишь что это по вар.№2 чтением картики попиксельно средствами апи.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Основная цель этой разработки познание возможностей программирования.
Ну и опыту поднабраться чуток... )))
*
Ви думаете шо это квадрат Малевича?
Так скажу вам шо ви таки ошибаетесь...
;)))
*
Основой представленных далее двух скриптов служит некая конструкция под условным названием "растр".
Которая из обьекта "Лейбл" формирует матрицу.
H и V соответственно вертикальная и горизонтальная развертка.
"." (точка) это "пиксел" матрицы...
Задавая цвет которому на каждой итерации можно отобразить хоть фотографию любимого президента.
*
Но это пока лишь в теории. Ибо не нашел инструментария как "отпикселить" исходный файл картинки.
Поэтому основная масса работы производилась с данными которые читаются из обычного *.csv либо текстового файла. Вар. №1.
Однако вариант №2, который для работы с файлом более интересен... И пока не реализован до логического завершения!
Вот что есть на текущий момент:
и выступает как "копировщик" текущего окна.
(поэтому не думайте шо ви напились и у вас уже двоится в глазах :)))
ЗЫ: каги остались на копии, а так он убран для лучшего вида
ЗЫ2: вариант №1, который "текстовый" чуть позже выложу вместе с файлом данных.
ЗЫ3: отдельное спасибо участникам темы https://www.mql5.com/en/code/8973