← К каталогу
Исходный код · ID 2355

CImage

cimage.mqh
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

CImage — это библиотека на языке MQL5, разработанная MetaQuotes Software Corp., предназначенная для работы с растровыми изображениями на графиках торгового терминала. Библиотека предоставляет одноимённый класс, который позволяет загружать изображения из ресурсов и отображать их в виде меток на графике.

Класс CImage использует компонент CCanvas для рендеринга изображений с поддержкой прозрачности. При создании объекта растр загружается из ресурса, преобразуется в массив пикселей и выводится на график в указанных координатах. Поддерживается настройка уровня прозрачности при отображении.

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

Состав библиотеки

Классов: 1 · методов: 3 · конструкторов: 1 · деструкторов: 1 · отдельных функций: 0

Классы
Класс class CImage

Класс для отображения и управления растровыми изображениями на графике торгового терминала.

Методы и конструкторы
Конструктор · CImage CImage(const string name,double x,double y,double transparency)

Создаёт объект изображения, загружает растр из ресурса и отображает его на графике в заданных координатах с указанной прозрачностью.

Деструктор · CImage ~CImage()

Уничтожает canvas и освобождает ресурсы, связанные с объектом изображения.

Метод · CImage uint Width()

Возвращает ширину загруженного изображения в пикселях.

Метод · CImage void ResizeImage(double NewWidth)

Изменяет ширину изображения с интерполяцией пикселей, сохраняя пропорции.

Метод · CImage void Finish()

Завершает работу объекта и уничтожает canvas на графике.

Получить полный код

Поиск по коду файла

??//+------------------------------------------------------------------+

//|                                                       CImage.mqh |

//|                        Copyright 2018, MetaQuotes Software Corp. |

//|                                             https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2018, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#include <Canvas\Canvas.mqh>

#define _ceil(x) (x-(int)x>0)?(int)x+1:(int)x

#define _round(x) (x>0)?(int)(x+0.5):(int)(x-0.5)

#define _floor(x) (x>0)?(int)x:((int)x-x>0)?(int)x-1:(int)x

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

union rgb

  {

   uchar             argb[4];

   uint              clr;

  };

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

bool  ArraySwap(

   uint&  array1[],      // ?5@2K9 <0AA82

   uint&  array2[]       // 2B>@>9 <0AA82

   )

  {

   int isize=MathMin(ArraySize(array1),ArraySize(array2));

   for(int i=0;i<isize;i++){

      

      uint tmp=array1[i];

      array1[i]=array2[i];

      array2[i]=tmp;   

   }

   

   return true;

  }



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

class CImage

  {

private:

   CCanvas           C;

   uint              width_bmp,height_bmp;

   uint              BMP[];

   string            CanvName;

   double            X,Y;

   int               SizeArr;

   void              ArrToCanvas();

   double            tr;

   rgb               col;



public:

                     CImage(const string name,double x,double y,double transparency=1);

                    ~CImage();

   uint              Width() { return(width_bmp);};

   void              ResizeImage(double NewWidth);

   void              Finish();

  };

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

CImage::CImage(const string name,double x,double y,double transparency=1)

  {

   ChartSetInteger(0,CHART_FOREGROUND,false); // &5=>2>9 3@0D8: =0 704=5< ?;0=5

   X=x;

   Y=y;

   tr=transparency;

   if(!ResourceReadImage(name,BMP,width_bmp,height_bmp))

      Print("Error read resource: ",GetLastError()); // ?5@5=>A8< bmp D09; 2 <0AA82 Button1[]

   ResourceFree(name);

   SizeArr=(int)(width_bmp*height_bmp);

   CanvName="Image"+string(GetTickCount()+MathRand());

   if(!C.CreateBitmapLabel(0,0,CanvName,(int)X,(int)Y,width_bmp,height_bmp,COLOR_FORMAT_ARGB_NORMALIZE)) // create canvas with the size of the current window

      Pr

Показано первые 50% кода (символов: 11051)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 105,10₽ ≈ $13.51