Leinwand ist cool! - Seite 85

 
Nikolai Semko #:
Leider gibt es in MQL4 keine Möglichkeit, eine Ressource als Array anzuhängen. Aber alles andere funktioniert.
Natürlich ist es möglich, es durch harte Tambourine zu implementieren. Fügen Sie z.B. ein PNG-Bild in eine BMP-Datei ein, d.h. fügen Sie einen BMP-Header am Anfang der png-Datei ein und übergeben Sie die png-Datei selbst als bmp-Bild (d.h. wenn Sie eine solche BMP-Datei öffnen, gibt es ein Rauschen von farbigen Pixeln mit unterschiedlicher Transparenz). Und dann fügen Sie diese "bmp-Datei" als Ressource in MQL4 ein. Dies kann für den Markt notwendig sein, damit ex4 bereits ein Bild in einem dichteren png-Format enthält.
Als Referenz: png ist etwa 10-mal kleiner als das gleiche BMP-Bild ohne Qualitätsverlust, zusätzlich unterstützt volle Transparenz.
Die echte BMP-Ressource in der ex4-Datei ist in einem komprimierten Format gespeichert, aber nicht um eine Größenordnung kleiner. Es ist notwendig, genau zu prüfen.

Übrigens konnte ich noch nie ein BMP mit Alphakanal in MQL4 einfügen, wenn das Bild eine Transparenz wie png hat. Es wird entweder nicht angezeigt oder lässt sich nicht kompilieren.

Es gab eine Diskussion hier https://www.mql5.com/en/forum/157832 Als Ergebnis ist es nur für MT5 geeignet. Aber es ist interessant, dass es BMP mit Alphakanal gibt.

Mit PNG hat es auch nicht funktioniert... oder ich habe nicht herausgefunden wie.


Über Leinwand und Skalierung, Danke, ich werde es auf mq4 versuchen.

 
Vitaliy Kuznetsov #:

Übrigens konnte ich noch nie ein BMP mit Alphakanal in MQL4 einfügen, wenn das Bild eine Transparenz wie png hat. Es wird entweder nicht angezeigt oder nicht kompiliert.

Es gab eine Diskussion hier https://www.mql5.com/en/forum/157832 Daher ist es nur für MT5 geeignet. Aber es ist interessant, dass es BMPs mit Alphakanal gibt.

Mit PNG hat es auch nicht funktioniert... oder ich wusste nicht wie.


Über Leinwand und Skalierung, Danke, ich werde es auf mq4 versuchen.

Es gibt keinen blinkenden Bug in MQL4.
Angehängt ist die mql4 Version.

 
Nikolai Semko #:

Es gibt keinen blinkenden Fehler in MQL4.
Beigefügt ist die mql4-Version.

Das ist eine passende. Ich danke Ihnen!

 

Zuerst war ich zufrieden, aber jetzt bin ich ratlos. Ich kann eine Datei von außen nicht über die Einstellungen im Indikator laden, aber nicht innerhalb der kompilierten Datei.

Nikolai Semko, wenn Sie Zeit haben, schreiben Sie bitte, ob es möglich ist. Und wenn Sie ein Beispiel mit der Einstellung der Transparenz und der Dateiauswahl haben, können Sie mir helfen.

 
Vitaliy Kuznetsov #:

Zuerst war ich zufrieden, aber jetzt bin ich ratlos. Ich kann eine Datei nicht von außen über die Einstellungen im Indikator laden, aber nicht innerhalb der kompilierten Datei.

Nikolai Semko, wenn Sie Zeit haben, schreiben Sie bitte, ob es möglich ist. Und wenn Sie ein Beispiel mit der Einstellung der Transparenz und der Dateiauswahl haben, werden Sie mir helfen.

Ich verstehe nicht, wo die Schwierigkeit liegt, png als uchar-Array zu laden und es dann in das Objekt der Klasse Png einzugeben.
Es ist überhaupt nicht schwer, die Methode LoadPngFromFile(string file_name) zur Png-Klasse hinzuzufügen. Ich habe mir nur keine solche Aufgabe gestellt, also habe ich sie nicht implementiert. Aber Sie können das leicht nachholen.
h ttps://www.mql5.com/ru/docs/files/filereadarray
Sehen Sie sich den Konstruktor der Klasse Png an, der als Eingabe ein Array uchar[] erhält, das die gesamte png-Datei enthält.

*

Ups, bin ich blöd. Der zweite Konstruktor, der einen Dateinamen entgegennimmt, wurde bereits implementiert. Dann sehe ich überhaupt keine Schwierigkeiten mehr.

CPng::CPng(string file_path, bool create_canvas = false, int x = 0, int y = 0);
Документация по MQL5: Файловые операции / FileReadArray
Документация по MQL5: Файловые операции / FileReadArray
  • www.mql5.com
FileReadArray - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaliy Kuznetsov #:

Zuerst war ich zufrieden, aber jetzt bin ich ratlos. Ich kann eine Datei nicht von außen über die Einstellungen im Indikator laden, aber nicht innerhalb der kompilierten Datei.

Nikolai Semko, wenn Sie Zeit haben, schreiben Sie bitte, ob es möglich ist. Und wenn Sie ein Beispiel mit der Einstellung der Transparenz und der Dateiauswahl haben, können Sie mir helfen.

hier ist eine neue Version von CPng, die die Funktion LoadPngFromFile() hat.

Dateien:
Png.mqh  38 kb
 
Nikolai Semko #:
Ich verstehe nicht, warum es so schwierig ist, ein png hochzuladen.

In der Tat..., es ist nicht immer einfach)

Nikolai Semko #:
hier ist eine neue Version von CPng, die die Funktion LoadPngFromFile() hat.

Danke, ich werde es ausprobieren

 
Nikolai Semko #:
Ich habe nicht verstanden, was die Schwierigkeit ist, png als uchar-Array zu laden und es dann zu einem Objekt der Png-Klasse zu machen.

Ich habe herausgefunden, die externen PNGs, Laden, Skalieren, Transparenz funktioniert. Aber...

Ist es überhaupt realistisch, ein PNG innerhalb einer Datei zu kompilieren?

Die Standardfunktionalität ...

#resource "\\Files\\123.png"

string nam_img = "::Files\\123.png"

... gibt einen Kompilierungsfehler

Ich habe mich nicht mit der Tatsache beschäftigt, dass die Software mit einer externen Datei arbeitet, aber wie kann man das gesamte Endprodukt zu einer Datei machen?

Sonst geht der praktische Sinn einer solchen Funktion verloren. Ich habe es in MT5 nicht ausprobiert. In MT4 gibt es einen Verbindungsfehler.


P.S. Ich nehme an, dass es theoretisch möglich ist, ein Skript zu schreiben, das PNG in Code umwandelt, und wir werden es, sagen wir, in MQH einfügen und mit ihnen als Teil eines Containers arbeiten. Aber ich kann ein solches Skript nicht schreiben. Bildarrays sind ein blinder Wald für mich.

 
Vitaliy Kuznetsov #:

Externe PNGs sind in Ordnung, Laden, Skalieren, Transparenz funktioniert. Aber...

Ist es überhaupt realistisch, ein PNG innerhalb einer Datei zu kompilieren?

Man kann die Datei als Array einfügen und dann auf dieses Array zugreifen.


Anbei ein Beispiel

Dateien:
Resurs.mq5  634 kb
 
Vitaliy Kuznetsov #:

Ist es überhaupt realistisch, PNG innerhalb einer Datei zu kompilieren?

Bitten Sie die Entwickler, PNG hier einzufügen.

Ich bin sicher, sie werden zustimmen.

Grund der Beschwerde: