Obrigado a Julio Marchi pelo espaço cedido na MSX All
 

Dynamic Publisher Shape (.STP)

  Arquivo de shape do Dynamic Publisher, possui apenas um desenho por arquivo. O desenho é monocromático (preto e branco).

  O arquivo possui um pequeno header, com as dimensões do shape:

Offset Tamanho Descrição
0 2 Largura
2 2 Altura

  Depois do header vem os dados do desenho, onde cada byte representa 4x1 pontos na tela. Em cada byte, somente os bits pares são usados. Exemplo:

 Valor em Hexa: 50
 Valor em binário: 01010000
 Padrão de pixels: ■■□□


  Os grupos de pixels 4x1 são empilhados sem que haja "quebras de linha". Assim, quando a largura não for múltipla de 4, ao final de uma linha teremos os dados de outra linha.

  Exemplo para um figura com dimensões de 6x2:

  Dados do desenho:

 0   3
┌─┬─┬─┐
│A│B│C│
└─┴─┴─┘


  Vetor com os dados expandidos para pixels individualizados (são 12 pixels):

 0                     11
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│A│A│A│A│B│B│B│B│C│C│C│C│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘


  Na tela:

┌─┬─┬─┬─┬─┬─┐
│A│A│A│A│B│B│
├─┼─┼─┼─┼─┼─┤
│B│B│C│C│C│C│
└─┴─┴─┴─┴─┴─┘


  O espaço ocupado pelos dados é calculado da seguinte maneira:

 Largura x Altura / 4

Marcelo Silveira
Engenheiro de Sistemas e Computação
Especialista em Processamento de Imagens e Inteligência Artificial
© MarMSX 1999-2025