La toile est cool ! - page 85

 
Nikolai Semko #:
Malheureusement, dans MQL4, il n'est pas possible d'attacher une ressource sous forme de tableau. Mais tout le reste fonctionne.
Bien sûr, il est possible de l'implémenter à l'aide de tambourins durs. Par exemple, insérer une image PNG dans un fichier BMP, c'est-à-dire ajouter un en-tête BMP au début du png, et passer le png lui-même en tant qu'image bmp (c'est-à-dire que si vous ouvrez un tel BMP, il y aura un bruit de pixels colorés de transparence différente). Ensuite, attachez ce "fichier bmp" en tant que ressource dans MQL4. Cela peut être nécessaire pour le marché, afin que ex4 contienne déjà une image d'un format png plus dense.
Pour référence : le format png est environ 10 fois plus petit que la même image BMP sans perte de qualité, et supporte en outre une transparence totale.
La ressource BMP réelle dans le fichier ex4 est stockée dans un format compacté, mais pas dans un ordre de grandeur inférieur. Il est nécessaire de vérifier exactement.

D'ailleurs, je n'ai jamais réussi à insérer un BMP avec canal alpha dans MQL4 lorsque l'image est transparente comme le png. Soit ça ne s'affiche pas, soit ça ne compile pas.

Il y a eu une discussion ici https://www.mql5.com/en/forum/157832 Par conséquent, il n'est adapté qu'à MT5. Mais il est intéressant que le BMP existe avec le canal alpha.

Cela ne fonctionnait pas non plus avec PNG... ou je n'ai pas trouvé comment.


Pour ce qui est du canvas et de la mise à l'échelle, merci, j'essaierai sur mq4.

 
Vitaliy Kuznetsov #:

Par ailleurs, je n'ai jamais pu insérer de BMP avec canal alpha dans MQL4, alors que l'image est transparente comme le png. Il n'est pas affiché ou n'est pas compilé.

Il y a eu une discussion ici https://www.mql5.com/en/forum/157832 Par conséquent, il n'est adapté qu'à MT5. Mais il est intéressant que les BMPs existent avec le canal alpha.

Cela ne fonctionnait pas non plus avec PNG... ou je n'ai pas compris comment.


Pour ce qui est du canvas et de la mise à l'échelle, merci, je vais essayer sur mq4.

Il n'y a pas de bug de clignotement dans MQL4.
La version mql4 est jointe.

Dossiers :
 
Nikolai Semko #:

Il n'y a pas de bug de clignotement dans MQL4.
La version mql4 est jointe.

C'est un ajustement. Merci de votre attention !

 

Au début, j'étais content, mais maintenant je ne sais plus où j'en suis. Je ne peux pas charger un fichier depuis l'extérieur via les paramètres de l'indicateur, mais pas à l'intérieur du fichier compilé.

Nikolai Semko, si vous avez le temps, écrivez-moi si c'est possible. Et si vous avez un exemple avec le réglage de la transparence et la sélection de fichier, vous pouvez m'aider.

 
Vitaliy Kuznetsov #:

Au début, j'étais content, mais maintenant je ne sais plus où j'en suis. Je ne peux pas charger un fichier depuis l'extérieur via les paramètres de l'indicateur, mais pas à l'intérieur du fichier compilé.

Nikolai Semko, si vous avez le temps, écrivez-moi si c'est possible. Et si vous avez un exemple avec le réglage de la transparence et la sélection des fichiers, vous m'aiderez.

Je ne comprends pas en quoi il est difficile de charger un png sous la forme d'un tableau de caractères et de le transmettre ensuite à l'objet de la classe Png.
Il n'est pas difficile d'ajouter la méthode LoadPngFromFile(string file_name) à la classe Png. Je ne me suis pas fixé une telle tâche, et je ne l'ai donc pas implémentée. Mais vous pouvez facilement vous en sortir.
h ttps://www.mql5.com/ru/docs/files/filereadarray
Regardez le constructeur de la classe Png, qui prend en entrée un tableau uchar[] , qui contient le fichier png entier.

*

Oups, je suis stupide. Le deuxième constructeur qui prend un nom de fichier a déjà été implémenté. Je ne vois donc aucune difficulté.

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 #:

Au début, j'étais content, mais maintenant je ne sais plus où j'en suis. Je ne peux pas charger un fichier depuis l'extérieur via les paramètres de l'indicateur, mais pas à l'intérieur du fichier compilé.

Nikolai Semko, si vous avez le temps, écrivez-moi si c'est possible. Et si vous avez un exemple avec le réglage de la transparence et la sélection de fichier, vous pouvez m'aider.

Voici une nouvelle version de CPng, qui possède la fonction LoadPngFromFile().

Dossiers :
Png.mqh  38 kb
 
Nikolai Semko #:
Je ne comprends pas la difficulté d'uploader un png

En effet..., ce n'est pas toujours facile)

Nikolai Semko #:
voici une nouvelle version de CPng, qui a la fonction LoadPngFromFile().

Merci, je vais essayer

 
Nikolai Semko #:
Je n'ai pas compris, quelle est la difficulté pour charger un png en tant que tableau uchar et ensuite le transformer en objet de la classe Png.

J'ai compris les PNG externes, le chargement, la mise à l'échelle, la transparence fonctionnent. Mais...

Est-il réaliste de compiler un PNG à l'intérieur d'un fichier ?

La fonctionnalité standard ...

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

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

... donne une erreur de compilation

Je n'ai pas abordé le fait que le logiciel fonctionne avec un fichier externe, mais comment faire pour que l'ensemble du produit final soit un seul fichier ?

Sinon, le sens pratique d'une telle fonctionnalité est perdu. Je n'ai pas essayé avec MT5. Dans MT4, il y a une erreur de connexion.


P.S. Je suppose qu'il est théoriquement possible d'écrire un script qui convertira le PNG en code et que nous le mettrons, disons, dans MQH et que nous travaillerons avec eux comme s'ils faisaient partie d'un seul conteneur. Mais je n'arrive pas à écrire un tel script. Les tableaux d'images sont une forêt aveugle pour moi.

 
Vitaliy Kuznetsov #:

Les PNG externes sont réglés, le chargement, la mise à l'échelle, la transparence fonctionnent. Mais...

Est-il réaliste de compiler un PNG à l'intérieur d'un fichier ?

Vous pouvez insérer le fichier comme un tableau et ensuite accéder à ce tableau.


Ci-joint un exemple

Dossiers :
Resurs.mq5  634 kb
 
Vitaliy Kuznetsov #:

Est-il même réaliste de compiler du PNG dans un fichier ?

Demandez aux développeurs d'insérer le PNG ici.

Je suis sûr qu'ils seront d'accord.