Альфа-канал и BMP, а собственно как ?

 

Художники есть ? чем вы делаете BMP с прозрачными элементами ?

или чем/как заменяете BMP

 
Maxim Kuznetsov:

Художники есть ? чем вы делаете BMP с прозрачными элементами ?

или чем/как заменяете BMP

void OnStart()
{
   // Параметры изображения
   const int width = 128;
   const int height = 128;
   uint pixels[];
   ArrayResize(pixels, width * height);

   // Задаём цвет заливки с прозрачностью (ARGB)
   // Пример: полупрозрачный красный (альфа=128)
   uint alpha = 128;
   uint red = 255;
   uint green = 0;
   uint blue = 0;
   uint clr = (alpha << 24) | (red << 16) | (green << 8) | blue;

   // Заполняем весь массив пикселями нужного цвета
   for(int i = 0; i < width * height; i++)
   {
      pixels[i] = clr;
   }

   // Имя создаваемого ресурса
   string resource_name = "CustomRedSquare";

   // Создаём ресурс из массива пикселей
   bool created = ResourceCreate(resource_name, pixels, width, height, 0, 0, width, COLOR_FORMAT_ARGB_NORMALIZE);
   if(!created)
   {
      Print("Ошибка создания ресурса: ", GetLastError());
      return;
   }

   // Имя объекта на графике
   string obj_name = "MyBitmapLabel";

   // Создаём объект OBJ_BITMAP_LABEL
   if(!ObjectCreate(0, obj_name, OBJ_BITMAP_LABEL, 0, 0, 0))
   {
      Print("Ошибка создания объекта: ", GetLastError());
      return;
   }

   // Назначаем объекту созданный ресурс
   if(!ObjectSetString(0, obj_name, OBJPROP_BMPFILE, "::" + resource_name))
   {
      Print("Ошибка назначения ресурса объекту: ", GetLastError());
      return;
   }

   // Опционально задаём координаты объекта (например, центр экрана)
   ObjectSetInteger(0, obj_name, OBJPROP_CORNER, 0);
   ObjectSetInteger(0, obj_name, OBJPROP_XDISTANCE, 100);
   ObjectSetInteger(0, obj_name, OBJPROP_YDISTANCE, 100);

   // Перерисовываем график для отображения изменений
   ChartRedraw();
}
 
Ilya Filatov #:

Спасибо !

С Новым Годом !!

(подарки в аттаче)

Файлы:
horse.zip  345 kb
 
Maxim Kuznetsov #:

Спасибо !

С Новым Годом !!

(подарки в аттаче)

Шо-то кони никуда не скачут, а может и скачут, но я их не увидел. 
 
Alexandr Saprykin #:
Шо-то кони никуда не скачут, а может и скачут, но я их не увидел. 

может bmp не туда поклалась, надо в Files копировать..по хорошему-бы в ресурсы, но геморойно, LoadBitmap видимо не умеет  загружать из них данные.

на скорую руку сделано, чтобы "расписаться" после НГ

 
Alexandr Saprykin #:
Шо-то кони никуда не скачут, а может и скачут, но я их не увидел. 

перепроверил, вроде всё нормально, лошадь скачет..


 
Почему только жёлтые?
 
Vitaly Murlenko #:
Почему только жёлтые?

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

в ресурсе(в bmp-шке) есть синие и со звёздочками кони.  Можно ещё ресурс поменять,тогда будут не лошади

 

За подарок спасибо. Но какой от него прок? Где его применять? Развлекуха?

Или Вы намекаете на другой способ отрисовки индикаторов?

 
Vitaly Murlenko #:

За подарок спасибо. Но какой от него прок? Где его применять? Развлекуха?

Или Вы намекаете на другой способ отрисовки индикаторов?

просто развлекуха :-) нельзя же быть всегда серьёзным

 
Maxim Kuznetsov #:

просто развлекуха :-) нельзя же быть всегда серьёзным

Знаете, я когда-то столкнулся с иллюстрацией такого факта. Однажды один монах (наш, христианский), проходя мимо группы таких же монахов, увидел как их "наставник" рассказывает им всякие шутки и молодые от души смеются. Он очень удивился, ибо по монашескому уставу им запрещено даже улыбаться. Тогда он спросил наставника, почему тот допускает такие вольности? На что наставник сказал ему: "Попробуй натянуть тетиву лука и держать её. Долго ты так выдержишь? Время от времени человек должен "отпускать тетиву"."

Я люблю работать, но иногда я просто посылаю все рабочие процессы подалее и "впадаю в отдых". Могу иногда спать дни напролёт, иногда и спиртного жахнуть, а иногда просто встать под рюкзак и уйти на природу.

Когда Вы сказали, "развлекуха" - я Вас понял. Но весь курьёз ситуации в том, что канвас в MQL5 можно использовать для графического отображения работы индикаторов. Есть такой житель этого форума - Николай Семко. Он утверждает, что возможности такого подхода в разы лучше, чем простая отрисовка индикатора через индикаторные буферы. Так что в Вашей развлекухе есть и элемент учёбы, который может пригодиться в будущем. Психологи говорят, что когда ребёнок играет, он в игре учится жить.