Библиотеки: cIntBMP - библиотека для создания изображений в формате BMP

 

cIntBMP - библиотека для создания изображений в формате BMP:

Класс для создания и отображения BMP изображений.

Методы:
  • Create(int aSizeX, int aSizeY, int aBGColor) - установка размеров изображения и цвета фона.
  • SetDrawWidth(int aWidth) - установка толщины рисования.
  • DrawDot(int aX, int aY, int aColor) - рисование точки.
  • DrawLine(int aX1,int aY1, int aX2, int aY2, int aColor) - рисование линии.
  • DrawRectangle(int aX1, int aY1, int aX2, int aY2, int aColor, bool aSolid=false) - рисование прямоугольника.
  • DrawTriangle(int aX1, int aY1, int aX2, int aY2, int aX3, int aY3, int aColor, bool aSolid=false) - рисование треугольника.
  • DrawCircle(int aX, int aY, int aRadius1, int aRadius2, int aColor, double aRatio=1.0, double aAngleFrom=0.0, double aAngleTo, bool aSolid=false) - рисование окружности.
  • Fill(int aX, int aY, int aColor) - заливка одноцветной области.
  • TypeText(int aX, int aY, int aColor) - печать текста на изображении.
  • Save(string aFileName, bool aToImages=true) - сохранение созданного изображение в файл.
  • Show(int aX, int aY, string aBMPFileName, string aObjectName) - отображение изображения на графике.
  • Hide(string aObjectName) - удаление графического объекта с указанным именем.
  • Delete(string aFileName, bool aFromImages=true) - удаление файла.

Автор: Дмитрий

cIntBMP - Треугольники. Метод DrawTriangle()

Треугольники. Метод DrawTriangle()

Прямоугольники. Метод DrawRectangle()

Прямоугольники. Метод DrawRectangle()


cIntBMP - Сектора. Метод DrawCircle()

Сектора. Метод DrawCircle()


cIntBMP - Заливка. Метод Fill()

Заливка. Метод Fill()

 
На Windows 7 64 bit не работает.
 
barnix:
На Windows 7 64 бит не работает.
Исправлено. Пожалуйста, скачайте его снова.
 

Я пытаюсь создать прозрачный. Но это не работает. Можно было бы найти ошибку. Или один cIntBMP Trasnparent Добавить функции.

 

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+

#import "user32.dll"
   int GetDC(int hwnd);
   int ReleaseDC(int hwnd,int hdc);
#import "gdi32.dll"
 int GetPixel(int hdc,int x,int y);
 int SetPixel(int hdc,int x,int y, int c); 
#import

void OnStart()
  {
   
int i, H, V, shH=0, shV=0, header;
  double hgh;
  color screen [80][80];
  color r, g, b, cv=Red;

//---
long  hwnd=ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE);
int   hdc=GetDC((int)hwnd);
   
 

for(V=0; V<80; V++)
{
   for(H=0; H<80; H++)
   {
   screen[V][H]=GetPixel(hdc,V,H); 
   
   }
}

for(V=0; V<80; V++)
{
   for(H=0; H<80; H++)
   {

   cv=screen[V][H];
   
     cv=AlphaBlend(cv ,clrRed );

   SetPixel(hdc, V+shV,H+shH,cv);
  
   }
}


Sleep(3000);


  }
//+------------------------------------------------------------------+

/* alpha blend routine */
int AlphaBlend(int bg, int src)
{
int alpha = 100;
return (src * alpha / 255 + bg * (255 - alpha) / 255);

   int a = src >> 24;    /* alpha */
 
   /* If source pixel is transparent, just return the background */
   if (0 == a) return (bg);

   /* alpha blending the source and background colors */
 int rb = (((src & 0x00ff00ff) * a) +  
      ((bg & 0x00ff00ff) * (0xff - a))) & 0xff00ff00;
 int    g  = (((src & 0x0000ff00) * a) + 
      ((bg & 0x0000ff00) * (0xff - a))) & 0x00ff0000;
 
    return (  (src & 0xff000000) | ((rb | g) >> 8)   );
}
 
FinGeR:

Или один cIntBMP Trasnparent Добавить функции.

Не нужна такая функция, потребуется на каждом тике все изображение персчитывать и обновлять. Машина хоть и железная, но пусть она занимается более полезными задачами.
 
Есть ли возможность использовать эту библиотеку БЕЗ dll, которую она вызывает? ( функции файла внутри кода)
 
Ребята, может, есть другие способы сделать картинку лучше?
 
Dmitry Fedoseev каждом тике. Машина - это железо, но пусть она занимается более полезными задачами.

То есть, единственный способ добиться прозрачности этих прямоугольных и треугольных объектов - это воспроизвести решение, которое мы привели в этой статье? Изучение класса CCanvas. Как рисовать прозрачные объекты - Статьи на MQL5

Studying the CCanvas Class. How to Draw Transparent Objects
Studying the CCanvas Class. How to Draw Transparent Objects
  • www.mql5.com
Do you need more than awkward graphics of moving averages? Do you want to draw something more beautiful than a simple filled rectangle in your terminal? Attractive graphics can be drawn in the terminal. This can be implemented through the CСanvas class, which is used for creating custom graphics. With this class you can implement transparency, blend colors and produce the illusion of transparency by means of overlapping and blending colors.