A lona é legal! - página 31

 
Nikolai Semko:

Obrigado, Andrey :)

Vou explicar, Andrew, meu raciocínio lógico à sua pergunta "é possível salvar em vídeo?".
Antes de responder qualquer pergunta, tento entender pelos meios disponíveis, quem está fazendo a pergunta e seu nível. Para, em primeiro lugar, construir minha resposta de forma mais correta e compreensível, e, em segundo lugar, compreender o significado de uma pergunta muito vaga, de modo a não responder uma pergunta com uma pergunta.
Claramente - Fui ao seu perfil.
  • Se eu tivesse visto uma classificação de, digamos, 162 e estivesse no fórum há 2-5 meses, teria entendido que a pergunta está sendo feita por um novato.
E eu teria respondido simplesmente: "No momento, a economia de vídeo não é implementada no MT5, mas pode ser feita se você quiser".
  • Mas lembro que seu nome surgiu freqüentemente no fórum e de seu perfil, percebi que estou lidando com um programador experiente, que está no fórum há mais de 10 anos, que é 5 vezes maior do que eu em número de postagens e tem pelo menos um artigo, 5 empregos concluídos e três códigos QB em seu arsenal, e sua classificação é mais alta do que a minha por mais de 2 vezes.
Então você, pensei, é muito bem versado nas características do MT5 e conhece a documentação tão bem quanto eu e concluo que sua pergunta é sobre a capacidade potencial de salvar vídeo e você está interessado na minha opinião, já que eu meio que conheço o Canvas.
Foi por isso que comecei a responder-lhe no formato de capacidade potencial.
  • Ou talvez você seja apenas mais um espertalhão e alguém que gosta de fazer pouco dos outros como "Suas vassouras podem voar".

Mas eu não me importo muito com as brincadeiras, em geral são pessoas que se acham muito espertas, mas na verdade são muito espertas e desajeitadas. Normalmente só precisam de algum truque de aikidô psicológico e depois caem num grande pânico.


ZS E quanto à lua, sua resposta NÃO me fez sorrir. Saiba disso, é sua resposta correta. Minha resposta "errada" a tal pergunta será novamente diferente, dependendo de quem me faz a pergunta.



Você pode filosofar muito e por muito tempo, mas o significado da pergunta estava na superfície e foi imediata, clara e inequivocamente. E em resposta a essa pergunta para dizer algo sobre a gravação de vídeo a partir da tela. é algo))) se você gosta tanto de pensar em níveis. O que a documentação MT5 tem a ver com isso?

 
Dmitry Fedoseev:

E você sabe, aqui há cem anos, Zorro demonstrou a reprodução de um gif animado através de uma tela. Não uma seqüência de vídeo em loop obscuro, mas um simples gif animado.

Eu não sabia disso. Você tem que descobrir o formato do gif e dissecá-lo e formar os quadros. Não acho que seja muito difícil. Mas então você também pode facilmente registrar as curvas padrão, se você entender o formato.
 
Nikolai Semko:
Eu não o fiz. Você tem que descobrir o formato gif e dissecá-lo e formar os quadros. Não acho que seja muito difícil. Mas então você também pode facilmente registrar as curvas padrão, se você entender o formato.

É tão fácil quanto a aviária se não estiver comprimida. Também não é difícil, só é preciso saber como, mas até agora ninguém sabe. Acho que há uma melhor chance de descobrir isso com um gif.

É melhor prestar atenção aeste conselho. Porque mesmo que você consiga descobrir como criar um vídeo sem compressão, não irá muito longe, os tamanhos dos arquivos serão muito grandes.

 
Nikolai Semko:
Por que você acha que sim?

A julgar pela resposta.

 
Quando penso em vídeo, penso no algoritmo de compressão, ou seja, nos codecs, caso contrário é brincadeira de criança
 

Existe outra opção, que é provavelmente a mais interessante e útil. Ganhe API: AVIFileOpen(), AVIFileCreateStream(), etc.

 
Nikolai Semko:

Primeiras experiências com o cronograma dinâmico.

EURUSD toda a história em dinâmica:

.

A fractalidade é evidente.

normas

abaixo da ripa para selecionar a janela e a escala


 
Nikolai Semko:

Obrigado, Andrew :)

Vou explicar, Andrew, meu raciocínio lógico à sua pergunta "é possível salvar em vídeo?".
Antes de responder a qualquer pergunta, tento entender, pelos meios disponíveis, quem está fazendo a pergunta e seu nível. Para, em primeiro lugar, construir minha resposta de forma mais correta e compreensível, e, em segundo lugar, compreender o significado de uma pergunta muito vaga, de modo a não responder uma pergunta com uma pergunta.
Claramente - Fui ao seu perfil.
  • Se eu tivesse visto uma classificação de, digamos, 162 e estivesse no fórum há 2-5 meses, teria entendido que a pergunta está sendo feita por um novato.
E eu teria respondido simplesmente: "No momento, a economia de vídeo não é implementada no MT5, mas pode ser feita se você quiser".
  • Mas lembro que seu nome apareceu freqüentemente no fórum e de seu perfil, percebi que estou lidando com um programador experiente, que está no fórum há mais de 10 anos, que é 5 vezes maior que eu em número de postagens e tem pelo menos um artigo, 5 empregos concluídos e três códigos QB em seu arsenal, e sua classificação é mais alta que a minha por mais de 2 vezes.
Então você, pensei, é muito bem versado nas características do MT5 e conhece a documentação tão bem quanto eu e concluo que sua pergunta é sobre a capacidade potencial de salvar vídeo e você está interessado na minha opinião, já que eu meio que conheço o Canvas.
Foi por isso que comecei a responder-lhe no formato de capacidade potencial.
  • Ou você é apenas mais um sujeito inteligente e alguém que gosta de fazer troça dos outros como "suas vassouras podem voar".

Mas as brincadeiras não me incomodam muito, porque em geral são pessoas que se consideram muito espertas, mas na verdade são muito pouco inteligentes e desajeitadas, contra as quais, em geral, basta um leve truque de aikidô psicológico e elas caem no riso geral.


ZS E quanto à lua, sua resposta NÃO me fez sorrir. Saiba disso, é sua resposta correta. Minha resposta "errada" a tal pergunta será novamente diferente, dependendo de quem me faz a pergunta.



 
Nikolai Semko:

...
Como você monta as armações?
Eu não entendo como você captura código de ME.
Se for apenas através de capturas de tela, bem feito de qualquer forma, como eu posso ver, eles estão embalados.
Seu trabalho merece atenção.

ZS O fio, embora eu o tenha criado e, de alguma forma, historicamente, é mais um fio condutor, pois o kanvas é algo como um hobby e uma saída para mim.
Mas não me sinto como se eu fosse o chefe aqui ou que seja algum tipo de território privado. As portas estão abertas. Todos são bem-vindos. Todos são bem-vindos. E até mesmo os trolls, pois eles às vezes lhe dão um impulso. :)

Obrigado, Nicholas.

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

Treinamento:

1. Reúno os quadros em um editor simples "FastStone", fazendo screenshots da área desejada, ou tiro um clipe com Camtasia, e transfiro os quadros para FastStone.

2. Eu processo os quadros (adiciono sombras, setas, textos) e os salvo em formato .bmp na pasta Images\MyGif (cada gif tem sua própria subpasta).

3. os nomes dos quadros devem ser "1.bmp", "2.bmp", "3.bmp", ... É necessário para o roteiro, que cria o Gif.

4. abrir o roteiro em ME e integrar todos os quadros através de #resource.

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

Princípio do roteiro:

1. O script percorre os quadros e os lê através da ReasourceReadImage.

2. O roteiro carrega dois quadros ao mesmo tempo - novo e anterior: 1 e 2, depois 2 e 3, depois 3 e 4.... E compara as cores dos pixels no novo quadro e no anterior. Se a cor mudou, o roteiro escreve o número de pixels e sua nova cor em uma matriz. Assim, apenas pixels e cores que mudaram desde o quadro anterior são escritos. Se a cor de um pixel não mudar após o primeiro quadro, o pixel com essa cor será escrito uma vez. Este é o primeiro mecanismo de compressão.

3. O segundo mecanismo de compressão: filas de pixels com a mesma cor são encurtadas. Se a linha de pixels tem uma cor que se repete de pixel para pixel, o roteiro inicia um ciclo de contagem de repetições e escreve na matriz o número do pixel inicial (a partir do qual a seqüência de repetições começou, a cor e o número de repetições).

Desta forma, o roteiro comprime os quadros e embala o gif. No final dos ciclos, a matriz coletada é escrita no arquivo com o nome do gif, após o que o construtor a carrega lendo o código kib. A interface pode conter qualquer número de hifas, mas cada hifa é atribuída a seu próprio elemento e seu início no array, escrito nas propriedades do elemento no graph.kernel.

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

Mecanismo de reprodução de hifas:

1. Cada hífice tem várias propriedades: origem em uma matriz de hifas, número de quadros, tamanho do quadro, pausa entre quadros.

2. Um bloco especial percorre os objetos do kernel e procura a propriedade do gif. As verificações de bloco:

  • Presença da hifa no elemento.
  • Se o item é visível ou oculto
  • Se o item é visível

Se os cheques forem passados, o bloco acessa a matriz de hifas no endereço da hifa em particular, olhando para ela:

  • contador de quadros
  • contador de pausas

Se estas verificações forem aprovadas, a unidade procede à leitura da hifa:

1. a unidade carrega a tela sobre a qual o gif é desenhado.

2. A unidade lê o quadro atual e o desembala:

  • Encontra os pixels corretos por número e calcula sua posição no kanvas geral.
  • Desenha pixels da cor certa no lugar certo.
  • "Desembalar" uma seqüência de pixels com a mesma cor.

O bloco se move não apenas através de esquadrias, contando a pausa entre elas, mas também através de diferentes penhascos de diferentes elementos em diferentes janelas, pulando aqueles penhascos que estão escondidos atrás da área de visibilidade ou em janelas fechadas.

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

Esse é o tipo de trabalho. Pensei que era fácil, mas quando contei, fiquei um pouco "chocado" com a complexidade :).

ZS. Um gif com um tamanho de imagem de 800*600 é comprimido até 20 vezes ou mais. Se eu conseguisse escrever tudo em uma matriz de caracteres, a compressão aumentaria mais 4 vezes. Mas, com certeza empobreceria a paleta de cores.
 
Mas o que o "gif" tem a ver com isso?