La toile est cool ! - page 43

 
khorosh:

Pourquoi feriez-vous cela, vous avez écrit que vous n'aviez pas du tout besoin d'un calendrier).

Pour la beauté.
 
Реter Konow:

Merci. Il ne s'agit pas d'une image .bmp compressée avec la commande #resource, n'est-ce pas ? ))) Définitivement non. C'est un adaptateur naturel pour lire un fichier gif sur MQL-canvas, basé sur un lecteur .gif porté, qui a été écrit en quelques heures. Je dois avoir l'air d'un idiot de l'extérieur))))

Yuri, merci pour la démo, mais n'importe qui peut faire une telle chose. Facile.

  1. Prenez un simple gif. Enregistrez-la sur vidéo.
  2. Obtenez toutes ses images à partir de la vidéo.
  3. Enregistrez les images au format .bmp, numérotées.

  4. Intégrer les cadres au script via #resource.

  5. Faites tourner les cadres en boucle et affichez-les un par un sur la toile en boucle sans fin.

En conséquence, nous obtenons un pseudo-gif qui n'a aucun rapport avec la représentation standard du format gif dans les programmes MQL.

//-----------------------------

Ajouté :

Je dirai que j'ai aussi un "pseudo-gif", mais la technologie est beaucoup plus complexe. Il dispose d'une compression d'auteur et d'un mécanisme de lecture. Et surtout, les "pseudo-gifs" sont liés à leurs éléments et sont reproduits à partir d'un tableau commun. La compression fonctionne mieux que via la directive #resource car les couleurs invariables ne sont pas enregistrées d'une image à l'autre.


Quel genre d'éditeur vidéo ne peut pas ouvrir des gifs animés ? Photoshop les ouvre et place les cadres dans des calques. Mais il existe une solution encore plus simple : un service en ligne. Téléchargez-y des gifs animés et vous obtiendrez en une minute un dossier zippé contenant les images individuelles.

 
Quel est l'intérêt de se disputer pour savoir si la solution est portée ou non ? Le format étant standard, la façon de travailler avec lui doit l'être aussi et être développée en même temps que le format lui-même.
 
Dossiers :
puh.ex5  29 kb
 
Yury Kulikov:

 

Salutations.

Quelqu'un sait-il pourquoi on ne peut pas dessiner une ligne de 2 pixels ? Quel genre de discrimination est-ce là ? )

void CCanvas::PolylineThick(const int &x[],const int &y[],const uint clr,const int size,const uint style,ENUM_LINE_END end_style)
  {
   if(size<=2)
     {
      if(size>0)
         PolylineWu(x,y,clr,style);
      return;
     }
...
 
Épais signifie "épais" et 2 pixels n'est pas du tout épais.
 
Dmitry Fedoseev:
Épais signifie "épais" et 2 pixels n'est pas du tout épais.
Plus épais que 1 pixel )
 
Oleksii Chepurnyi:

Salutations.

Peut-être que quelqu'un sait pourquoi on ne peut pas dessiner une ligne avec 2 pixels ? Quel genre de discrimination est-ce là ? )

Oui, et si vous le remplacez par if(size<2), il dessine, mais de façon imprécise :


@Nikolai Semko, y a-t-il un problème avec le lissage ?

 
Andrey Khatimlianskii:

@Nikolai Semko, y a-t-il un problème d'anticrénelage ici ?

Ces fonctions sont terriblement mal écrites. Il y a beaucoup de choses à rattraper. Pas d'anticrénelage normal, pas de traitement normal du mélange des couleurs et de la transparence. Tu devrais juste les froisser et les jeter à la poubelle, et en écrire de nouveaux.
J'en ai déjà parlé ici.

Dans tous les cas, vous devez absolument remplacer la fonction PixelTransform ordinaire par celle-ci :

https://www.mql5.com/ru/forum/1111/page2553#comment_13054823

J'ai commencé à écrire ma version double (où tous les paramètres d'entrée int sont doubles), mais je ne l'ai pas terminé et l'ai mis sur l'étagère. Une tâche pas très simple malgré son apparente simplicité. Ce n'est pas un problème de l'écrire avec précision, le problème est d'écrire une très haute qualité, pour que l'algorithme soit rapide. Mon principal problème est le perfectionnisme.