Kütüphaneler: cIntBMP - BMP formatında görüntüler oluşturmak için kütüphane

 

cIntBMP - BMP formatında görüntüler oluşturmak için kütüphane:

BMP biçiminde görüntüler oluşturmak ve görüntülemek için bir sınıf.

cIntBMP - BMP formatında görüntüler oluşturmak için kütüphane

Author: Dmitry Fedoseev

 
Windows 7 64 bit üzerinde çalışmıyor.
 
barnix:
Windows 7 64 bit üzerinde çalışmıyor.
Düzeltildi. Lütfen tekrar indirin.
[Silindi]  

Şeffaf bir tane oluşturmaya çalışıyorum. Ama çalışmıyor. Bir hata bulabilirsin. Veya bir cIntBMP Trasnparent Add fonksiyonu.

//+------------------------------------------------------------------+
//|Test.mq5 |
//| Telif Hakkı 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"
//+------------------------------------------------------------------+
//| Betik program başlatma işlevi|
//+------------------------------------------------------------------+

#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);


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

/* alfa karışım rutini */
int AlphaBlend(int bg, int src)
{
int alpha = 100;
return (src * alpha / 255 + bg * (255 - alpha) / 255);

   int a = src >> 24;    /* alfa */
 
   /* Kaynak piksel saydamsa, sadece arka planı döndür */
   if (0 == a) return (bg);

   /* kaynak ve arka plan renklerini alfa harmanlama */
 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:

Veya bir cIntBMP Trasnparent Add işlevi.

Böyle bir işleve ihtiyacınız yok, her tikte tüm görüntüyü yeniden hesaplamanız ve güncellemeniz gerekecek. Makine demirdir, ancak daha yararlı görevlerle uğraşmasına izin verin.
 
Bu kütüphaneyi çağırdığı dll olmadan kullanma imkanı var mı? (kod içindeki dosya işlevleri )
 
Beyler, belki de resmi daha iyi hale getirmenin başka yolları vardır?
 
Dmitry Fedoseev her tikte tüm görüntüyü yeniden hesaplamanız ve güncellemeniz gerekecek. Makine demir gibi ama bırakın daha faydalı işlerle uğraşsın.

Yani, bu dikdörtgen ve üçgen nesneler üzerinde şeffaflığa sahip olmanın tek yolu, bu makalede sahip olduğumuz çözümü yeniden üretmek mi? CCanvas Sınıfını incelemek. Şeffaf Nesneler Nasıl Çizilir - MQL5 Makaleler

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.