Formatos proprietários da Microsoft para representação...

22
1 Formatos proprietários da Microsoft para representação de imagens vetoriais: Windows Metafile (WMF) e, Enhanced Metafile (EMF) Eloy Tavares Departamento de Engenharia de Telecomunicações – Universidade Federal Fluminense (UFF-RJ) - Campus da Praia Vermelha, Escola de Engenharia - Bloco D, Sala 502-B Rua Passo da Pátria, 156 - São Domingos - 24210-240 – Niterói – RJ – Brasil. eloytavares@{ midiacom.uff |yahoo.com}.br Resumo. Este trabalho descreve os formatos proprietários da Microsoft para representação de imagens vetoriais, em particular os formatos Windows Metafile (WMF) e Enhanced Metafile (EMF), que foram desenvolvidos para acompanhar e suportar a evolução das diversas variações da versão do Kernel do Windows, adaptando-os as novas e modernas arquiteturas dos CPU´s (Central Processing Unit), dando assim, suporte ás aplicações dos usuários finais que usem imagens vetoriais da melhor forma possível, trazendo, portanto, melhorias adicionais como por exemplo na passagem de WMF ao EMF, assim como por exemplo a passagem do Kernel do Sistema Operacional Microsoft Windows - Win16 a Win32 bits. 1 - INTRODUÇÃO Nos dias de hoje, devido aos rápidos avanços dos hardwares computacionais e, dos softwares que tendem a evoluir aceleradamente, para realmente, acompanhar essa indústria de hardwares, a Microsoft, ainda continua crescendo e mantendo seu espaço no mercado. A Microsoft distribui vários softwares dentre atualizações e os recentes pacotes de programas que dêem suporte aos seus usuários finais ainda com certa facilidade e comodidade, apesar de ter “compartilhado” o mercado de software com a ampla e crescente aderência do mercado a softwares livres, como é o caso das variadas de distribuições linux. A Microsoft, no entanto, ainda dispõe de recursos proprietários dentre tantos, como o WMF e EMF, que são bastante aplicados e utilizados nos mercados fotográficos, cinematográficos, enfim, entidades que trabalham com imagens em largas dimensões. Neste sentido, a Microsoft, ainda ganha destaque e preferência entre milhões de usuários. Para que, essa preferência continue sendo almejada, a Microsoft, precisa necessariamente apresentar inovações assim como atualizações aos softwares que façam melhor uso dos

Transcript of Formatos proprietários da Microsoft para representação...

Page 1: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

1

Formatos proprietários da Microsoft para representação de imagens

vetoriais: Windows Metafile (WMF) e, Enhanced Metafile (EMF)

Eloy Tavares Departamento de Engenharia de Telecomunicações – Universidade Federal Fluminense

(UFF-RJ) - Campus da Praia Vermelha, Escola de Engenharia - Bloco D, Sala 502-B Rua Passo da Pátria, 156 - São Domingos - 24210-240 – Niterói – RJ – Brasil.

eloytavares@{ midiacom.uff |yahoo.com}.br

Resumo. Este trabalho descreve os formatos proprietários da Microsoft para representação de imagens vetoriais, em particular os formatos Windows Metafile (WMF) e Enhanced Metafile (EMF), que foram desenvolvidos para acompanhar e suportar a evolução das diversas variações da versão do Kernel do Windows, adaptando-os as novas e modernas arquiteturas dos CPU´s (Central Processing Unit), dando assim, suporte ás aplicações dos usuários finais que usem imagens vetoriais da melhor forma possível, trazendo, portanto, melhorias adicionais como por exemplo na passagem de WMF ao EMF, assim como por exemplo a passagem do Kernel do Sistema Operacional Microsoft Windows - Win16 a Win32 bits.

1 - INTRODUÇÃO

Nos dias de hoje, devido aos rápidos avanços dos hardwares computacionais e, dos

softwares que tendem a evoluir aceleradamente, para realmente, acompanhar essa indústria

de hardwares, a Microsoft, ainda continua crescendo e mantendo seu espaço no mercado.

A Microsoft distribui vários softwares dentre atualizações e os recentes pacotes de

programas que dêem suporte aos seus usuários finais ainda com certa facilidade e

comodidade, apesar de ter “compartilhado” o mercado de software com a ampla e

crescente aderência do mercado a softwares livres, como é o caso das variadas de

distribuições linux.

A Microsoft, no entanto, ainda dispõe de recursos proprietários dentre tantos, como o

WMF e EMF, que são bastante aplicados e utilizados nos mercados fotográficos,

cinematográficos, enfim, entidades que trabalham com imagens em largas dimensões.

Neste sentido, a Microsoft, ainda ganha destaque e preferência entre milhões de usuários.

Para que, essa preferência continue sendo almejada, a Microsoft, precisa necessariamente

apresentar inovações assim como atualizações aos softwares que façam melhor uso dos

Page 2: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

2

hardwares versáteis da clientela final. Neste sentido, surge o EMF, uma versão

tecnicamente superior ao formato WMF.

Sendo assim, constitui um dos objetivos deste trabalho, além de estudar os dois assuntos,

entender como são utilizadas essas técnicas para formatos vetoriais de imagens como sua

codificação, técnicas de compressão / compactação se existir, forma de armazenamento,

possibilidades de convertê-los a outros formatos, sua organização, etc, bem como o que de

novo e vantajoso existe nestes formatos oferecidos pela sua distribuidora proprietária.

Espera-se que com este trabalho, cria-se e abre margens de possibilidade ao entendimento

e ao conhecimento de um pouco sobre o assunto, comparando, portanto, aos restantes

formatos. Com isso, sem dúvida, constitui uma das maiores motivações para elaboração

deste trabalho.

No ambiente Windows, os arquivos metafiles são tipicamente criados e “copiados” em

memória. Se os dados metafile crescerem muito e se tornarem volumosos para serem

armazenados em memória, precisam ser salvos antes de uma aplicação terminar em um

disco na forma de arquivo WMF ou EMF. O tamanho máximo de um arquivo Windows

metafile é de quatro gigabytes, capacidade esta que torna difícil ser alocada em memória

de maioria ou quase todos os computadores, daí a necessidade de antes salvar em discos.

Um arquivo em formato metafile é obtido e gerado de duas maneiras distintas o que torna

em parte subjetivo afirmar que um arquivo metafile é unicamente, uma composição

vetorial de uma imagem, mas sim admissível afirmar que este formato também pode ser

considerado uma composição matricial implícita de imagens matriciais denominado

simplesmente, de arquivo bitmap de gráfico raster.

Os argumentos para a afirmação do parágrafo acima referido seguem nos parágrafos

imediatamente, abaixo deste:

- O código fonte de um arquivo metafile, é compilado usando a linguagem de

programação C, conforme segue alguns trechos de códigos ilustrando a estrutura dos

cabeçalhos de um arquivo metafile, ou seja, um metafile pode ser criado e gerado através

de um conjunto de rotinas de programação baseado em comandos e funções próprios que

Page 3: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

3

são corretamente interpretado e compilado pela linguagem C, gerando assim, uma imagem

de composição formato metafile do tipo vetorial baseado em linhas de código de

programação [8].

- Já uma composição de imagem formato metafile do tipo matricial, é obtido através de

comandos para importação e exibição de uma dos outros formatos já existente no mercado

como: PCX, TIF, GIF, JPEG, BMP, formatos que uma vez importados para dentro de um

editor Windows metafile, passarão a ser tratado como uma única imagem raster, e salvos

e exibidos como sendo um arquivo bitmap não pelo fato de existir um arquivo BMP, na

composição, mas sim como classificação atribuída aos formatos importados.

O restante do texto está organizado da maneira seguinte, conforme as secções: Na secção

2ª, apresenta-se uma introdução sobre o que é exactamente em metafile e será discutida

ainda o Microsoft Windows Metafile Format falando da organização e detalhes

específicos.. Já na secção 3ª, será falado sobre o outro formato WMF e apresentada a tabela

das funções usadas por este formato. Passando a secção 4ª, fala-se sobre o EMF,

descrevendo a sua criação, operação e registro, ao passo que na secção 5ª discute-se

algumas formas de conversões existentes entre os arquivos WMF a EMF e vice-versa,

zonas de transparências, conversão do BMP a WMF, etc. A secção 6ª, será feito um

resumo comparativo entre o WMF e EMF e alguns de outros formatos existente e,

finalmente a 7ª a penúltima secção será apresentado as considerações finais , seguido das

referencias bibliográficas.

2 - SOBRE METAFILES

Internamente, um metafile é um vetor de estruturas de comprimento variável chamado de

registros metafile. Os primeiros registros no metafile especificam informações gerais

como a resolução do dispositivo em que a imagem / cena foi criada, as dimensões da

imagem, e assim por diante. Os registros restantes, que constituem o tamanho de qualquer

metafile, correspondem à interface do dispositivo gráfico (GDI), funções exigidas para

desenhar uma cena. Estes registros são armazenados no metafile depois de se ter criado

neste contexto um dispositivo especial de metafile. Neste contexto, o dispositivo metafile é

então usado para todas operações exigidas para desenhar e criar uma imagem. Quando nos

Page 4: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

4

processos de sistema uma função de GDI é associada a um descritor de composição de

metafile, essa funções são convertidas para dentro do tipo de dados de registro de arquivo

apropriados e armazena também este dados em um registro anexado ao metafile como

uma cópia. [2]

Tipicamente, um metafile é formado de comandos para desenhar objetos como linhas,

polígonos e texto e comandos para controlar o estilo destes objetos. Costuma-se

comparam metafiles com gráficos de vetor. Na maioria de casos esta comparação é

aceitável, já que um metafile é predominantemente um tipo de gráfico de vetor, mas, no

sentido exato, um metafile pode conter qualquer um desses tipos de gráficos baseados tanto

em gráficos de vetor e gráficos raster conforme explicada na secção 1 – penúltimo

parágrafo e antepenúltimo. [5]

Um metafile é copiado (Played Back) quando seus registros forem convertidos em

comandos de dispositivo e processado pelo dispositivo apropriado.

Existem dois tipos de metafiles:

� Enhanced-format metafiles

� Windows-format metafiles

Estes tipos de metafile serão comentadas e explicados nas próximas secções depois desta

que se segue.

2.1 – WMF - ORGANIZAÇÃO E DETALHES ESPECÍFICOS.

Tabela 1 – Características particulares do WMF

Tipo Metafile Cor 24-bit Compressão Não Tamanho Max Imagem NA Múltiplas Imagens por fila Sim Formato Numérico Little-endian Originado Microsoft Corporation Plataforma Microsoft Windows Aplicações Suportadas

Numerosas Aplicações gráficas Baseadas em Windows, no entanto, muitas aplicações são suportadas por outras plataformas diferentes Microsoft Windows.

Page 5: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

5

Os arquivos, Microsoft Windows Metafile Format (WMF) são usados para armazenar

ambos os dados dos formatos gráficos baseados em vetor e formato bitmap em uma

memória ou em disco de arquivo. Os dados armazenados em vetor para os arquivos WMF

são descritos como comandos Microsoft Windows Graphics Device Interface (GDI).

Em um ambiente Windows estes comandos são interpretados e copiados -“played back”

para um dispositivo de saída usando a função PlayMetaFile() do API do Windows.

Os dados do arquivo Bitmap são armazenados em um arquivo WMF que talvez seja

armazenada para um dispositivo bitmap Microsoft dependente (Microsoft Device

Dependent Bitmap [DDB]), ou dispositivo bitmap independente – (Device Independent

Bitmap [DIB]). [5]

2.1.1 - ORGANIZAÇÃO DE ARQUIVO

Num metafile são incluído 1 ou N informações de cabeçalhos e um vetor de registros de

tamanho variável que armazenam informações chamadas pela função de GDI.

Existem quatro formas de organizar um Windows Metafiles: standard, placeable,

clipboard, and enhanced.

� O Metafile Standar, contém um cabeçalho de WMF de 18 bytes seguido por um ou

mais registros de comandos GDI.

� O Metafile placeable contém um cabeçalho de 22 bytes seguido pelo padrão WMF

cabeçalho de 18 bytes e registros de comando GDI.

� O Metafiles Clipboard contém um de cabeçalho de 8 bytes (Win16) ou de 16 bytes

(Win32) que precede o cabeçalho Metafile Standard.

� O Enhanced Metafile contém apenas registros de EMF, com o primeiro registro

armazenando as informações de cabeçalho. Os arquivos de EMF não são

compatíveis em projecto com os outros tipos de WMF metafiles.

Segundo a figura 1, o Windows Metafile contém um cabeçalho, seguido por um ou mais

registros de dados. O cabeçalho contém uma descrição dos dados de registro armazenado

no metafile. Cada registro é uma codificação binária que chama e use a função da Interface

de Dispositivo Gráficos de Microsoft Windows (GDI).

Page 6: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

6

A GDI é usada pelo Windows para executar toda a saída, impressora, ou outro dispositivo

de saída. Quando um dado de metafile for preparado e confeccionado, os dados de cada

registro são usados para executar a chamada da função de GDI apropriada para fazer cada

objecto armazenado no arquivo.[5],[3].

O último registro no arquivo contém informações indicando que o fim dos dados de

registro tinha sido alcançado, conforme se segue a figura ilustrativa abaixo.

Figure 1: Formato Standard

metafile

Fonte [5]

Por sua vez, o Placeable metafiles (Figura 2) são arquivos de WMF com um cabeçalho de

18 bytes. Este pré-header contém informações usadas para descrever a posição de uma

imagem metafile na pagina da impressora.

Figura 2: Placeable Metafile format

Fonte [5]

Page 7: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

7

Já ao se referir ao Clipboard Metafiles são semelhantes a placeable metafiles dado que

este contém também um cabeçalho extra para um arquivo WMF. O pré–header Clipboard

contém informações usadas para descrever a posição do metafile no Windows Clipboard e

mapeando o modo cópia (played back) usado em dados,ilustrado na figura 3.

Figura 3: Clipboard metafile

format

Fonte[5]

De maneira análoga, o Enhanced metafiles tem o mesmo formato básico de arquivos

WMF: um cabeçalho seguido por um ou mais registros de objetos de figuras armazenadas

como comandos GDI. Diferentemente de WMF, o cabeçalho está também armazenado em

um registro que aparece como o primeiro registro em cada arquivo de EMF. O cabeçalho

de EMF agora contém informações adicionais, inclusive as informações de posição e

mapeamento armazenados no placeable e clipboard metafile pré-cabeçalhos.EMF adiciona

também as características da descrição da string de um arquivo e uma palheta de cor

programável para o Formato Metafile, conforme exemplificada na Figura 4.

Figura 4. Enhanced metafile

format

Fonte [5]

Page 8: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

8

3 - WINDOWS-FORMAT METAFILES (WMF)

WMF é um formato Windows metafile Standard de 16 bits que apareceu com Windows

2.0 e que ainda acompanha as versões mais recentes de Windows Microsoft, embora, um

pouco defasado se comparação ao sucessor EMF.

� O formato de Microsoft Windows metafiles é limitado em suas capacidades e devia

raramente ser usadas as funções do formato Windows metafile que são suportadas

para manter a compatibilidade retrógrada com aplicações que eram escritas para

rodar como aplicações de 16 bits baseados em Windows. Ao invés, deve-se usar

as funções de Enhanced Format Metafile

� O WMF é usado por aplicações Windows Baseadas em 16 bits.

� O formato consiste em um cabeçalho e um vetor registros metafile.

A seguir são apresentadas as limitações deste formato:

� O formato Windows metafile é dependente de aplicação e dispositivo.

� Mudanças nos modos de mapeamento da aplicação ou na resolução de dispositivo

afetam a recriação deste formato.

O formato Windows metafile não contém um cabeçalho “inteligente” que descreva as

dimensões da imagem original, a resolução do dispositivo em que a imagem foi criada,

uma descrição de texto opcional, ou uma palheta opcional. [1],[2].

O cabeçalho do Windows Metafile Standard possui 18 bytes em tamanho é composto pela

seguinte estrutura:

typedef struct _WindowsMetaHeader{

WORD FileType;WORD HeaderSize;WORD Version;DWORD FileSize;WORD NumOfObjects;DWORD MaxRecordSize;WORD NumOfParams;

} WMFHEAD;

Page 9: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

9

� FileType contém um valor que indica a localização dos dados metafile. O Valor 0

indica que o metafile está sendo armazenado em memória, enquanto uma 1 indica

que é armazenado em disco.

� HeaderSize contém o tamanho do cabeçalho metafile de 16 bits. Iste é sempre 9.

A versão armazena o número de versão de Microsoft Windows que criou o metafile, é

lido sempre em formato hexadecimal. Por exemplo, em um metafile criado por

Windows 3.0 e 3.1, iste teria o valor 0x0300.

� FileSize especifica o tamanho total do metafile em 16 bits do tipo DWORD.

� NumOfObjects especifica o número de objetos que estão no metafile.

� MaxRecordSize especifica o tamanho do maior registro no metafile em Palavras.

� NumOfParams não é usado e é fixado para um valor de 0. [9]

3.1 - OUTROS TIPOS DE REGISTROS DE ESTRUTURAS DE WINDOWS METAFILE

A tabela 2 apresenta as demais funções alem das citadas anteriormente, usadas para

representação de um arquivo WMF.

Estas mesmas funções representam os comandos imprescindíveis para codificação do

format Windows metafile interpretados e compilados pela linguagem C, porem estas

funções são em numero menor que as do EMF.

O fato da existência de quantidade inferior de funções para representar um WMF, é uma

das condições que demonstra a superioridade do EMF sobre o WMF. Antes disso, a

existências de números de funções avultados para o EMF em relação ao WMF, é factível

dado que o EMF surgiu exatamente como o intuito de apresentar melhorias do antecessor

Windows format metafile, que muitas vezes é dito WFM-Standard.

Este fato é também uma das razões que leva a inviabilidade da conversão de um arquivo

ou imagem WMF a um formato EMF, além, evidentemente, da estrutura de cabeçalho

mais “pobre” do que o Enhanced Metafile Format (EMF).

Page 10: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

10

Tabela 2 – Funções adicionais utilizados pelo WMF

Fonte [2]

4 - FORMATO ENHANCED METAFILES (EMF)

Um Enhanced metafile é um metafile de 32 bits que pode ser usado por Windows 95, 98 e

NT para prover o display de uma imagem. Um Enhanced metafile pode conter uma

variedade muito mais abrangente de comandos que o habitual formato "Windows metafile.

Standard, o Enhanced metafile é o formato de 32 bits de super-conjunto do formato

Windows Metafile de 16 bits.[5]

Os arquivos Enhanced metafile são considerados novos e de uma melhorada revisão para

32 bits vindo do Windows Format Metafile Standard. Apenas Windows API (Win32) de

Page 11: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

11

32 bits ou superiores suportam o arquivo EMF, portanto, o Windows APIs (Win16 e

Win32s) não o suportam. [9]

O formato Enhanced metafile consiste nos elementos seguintes:

� Um cabeçalho

� Uma tabela de manivelas(handles) para objetos de GDI

� Uma palheta privada

� Um vetor de registros metafile

Enhanced metafiles fornece uma verdadeira independência de dispositivo. Pode-se pensar

numa imagem armazenada em um Enhanced metafile como uma exibição instantânea de

um vídeo tomado em um momento particular. Esta "instantâniedade" mantém suas

dimensões, não importe onde este é apresentado: numa impressora, um plotadora, em

desktop, ou em qualquer área de aplicação de um cliente.

Pode-se usar enhanced metafiles para armazenar uma imagem criada usando funções da

GDI inclusive novas funções e path de transformação. Porque as Enhanced-Format

Metafiles (Formato Aumentado de Metafile) está padronizado, imagens que estão

armazenados neste formato podem ser copiadas de uma aplicação para outra e, porque as

imagem / fotos são verdadeiramente independente, dos dispositivos, estes são garantidos

para manter sua forma e proporção em qualquer dispositivo de saída.[5]

Os registros de Enhanced Metafile, é uma das estruturas bastante importante ao definir um

Enhanced metafile format.

4.1 - REGISTROS DE ENHANCED METAFILE.

O Enhanced Metafiles tem também uma estrutura de registro de arquivos.Quando

comparado ao registro do Standard Metafile percebe-se que todos os três campos são

agora do tipo DWORDs de 32 bits ao invés de 16 bits e as posições do Tamanho e Função

dos campos são mudadas, em baixo segue a exemplificação de estrutura de registro

Enhanced metafile. typedef struct _EnhancedMetaRecord{

DWORD Function; /* Numero de funcao*/DWORD Size; /* Total do tamanho de regidtros em WORDs */DWORD Parameters[]; /* Parametro valores passados a funcao GDI */

Page 12: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

12

} EMFRECORD;

Na tabela 3 estão apresentados alguns dos registros de enhanced metafile que usam

funções identificadoras para todos 97 registros de EMF descrevendo funções para Win32.

[9].

Repare que nesta tabela estão apresentados os tipos de registros próprios para identificar

unicamente registros usados para criação de um EMF e seus respectivos valores em

decimal , são num total de noventa e sete registros (97) e não as funções.

As funções que utilizam estas especificações de registros de criação de uma imagem em

formato Enhanced Metafile, são alguns destes descritos nesta mesma secção logo abaixo

da estrutura do código fonte do cabeçalho de um EMF.

Segue alguns desses registros e seus respectivos valores correspondentes em decimal que

podem substituir o nome por extenso dos registros.

Tabela 3– Alguns dos 97 registros usadas em EMF

Record Value Record Value EMR_ABORTPATH 68 EMR_POLYLINE 4 EMR_ANGLEARC 41 EMR_POLYLINE16 87 EMR_CREATEMONOBRUSH 93 EMR_REALIZEPALETTE 52 EMR_CREATEPALETTE 49 EMR_RECTANGLE 43 EMR_CREATEPEN 38 EMR_RESIZEPALETTE 51 EMR_DELETEOBJECT 40 EMR_RESTOREDC 34 EMR_ELLIPSE 42 EMR_ROUNDRECT 44

Um Enhanced metafile é um vetor de registros. O registro de metafile é uma estrutura de

tamanho variável dado pelo parâmetro ENHMETARECORD.

Inicialmente todo o Enhanced Metafile é uma estrutura de EMR, que contém dois

membros. O primeiro membro, iType, identifica qual o tipo de registro, e a função GDI

cujos parâmetros são contidos no registro.

Porque as estruturas são variáveis em comprimento, também os membros, nSize, contém

o tamanho do registro. Imediatamente seguinte ao nSize , os membros são os parâmetros

restantes, se pertencente a alguma, das funções de GDI. O resto da estrutura contém dados

adicionais que são dependentes do tipo de registro.[6]

Page 13: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

13

Os arquivos EMF têm um cabeçalho de 80 bytes de tamanho e, embora o cabeçalho é

considerado ser apenas outro registro de EMF, deve-se todavia, aparecer como o primeiro

registro em todo arquivo EMF.[9]

O primeiro registro em um Enhanced Metafile é sempre o ENHMETAHEADER

estrutura, que é descrito como sendo o cabeçalho de referência para um Enhanced

Metafile. typedef struct _EnhancedMetaHeader{

DWORD RecordType;DWORD RecordSize;LONG BoundsLeft;LONG BoundsRight;LONG BoundsTop;LONG BoundsBottom;LONG FrameLeft;LONG FrameRight;LONG FrameTop;LONG FrameBottom;

} ENHANCEDMETAHEADER;

Este cabeçalho especifica portanto, as informações seguintes: [1],[7],[8] ,[9]

� Tamanho do metafile, em bytes;

� Tipo de registro;

� Determina lados de botões, topos e células das imagens em posição;

� Dimensões da armação da imagem, nas unidades de dispositivo

� Dimensões da armação da imagem, nas unidades de 01 milímetros

� Número de registros no metafile

� Quantidade adicionada a um número ou endereço para gerar um número final

para descrição de texto opcional

� Tamanho da palheta opcional

� Resolução do dispositivo original, em pixels

� Resolução do dispositivo original, em milímetros.

Segue o significado e função desempenhada por cada uma das funções correspondente ao

código a cima:

� RecordType identifica o tipo de registro EMF. Para o cabeçalho do registro de EMF

este valor é fixado por 00000001h.

Page 14: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

14

� RecordSize é o tamanho do cabeçalho em bytes.

� BoundsLeft, BoundsRight, BoundsTop, e BoundsBottom especifica o tamanho da

imagem metafile usando X, Y, largura, e comprimento como coordenadas do

sistema. BoundsTop e BoundsBottom devem ter valores maiores que BoundsLeft e

BoundsRight.

� FrameLeft, FrameRight, FrameTop, e FrameBottom especifica o tamanho da frame

ou borda do arquivo que inclui o metafile usando X, Y, largura, e comprimento do

sistema como coordenadas. FrameTop e FrameBottom devem ter valores maiores

que FrameLeft e FrameRight.

� A marcação é uma identificação do arquivo e está sempre fixado para o valor

0x464D4520.

� A versão é o número de versão do formato de arquivo EMF. A versão atual é 1.0 e

é armazenada como o valor 0x00000100.

� O tamanho é o tamanho do arquivo metafile inteiro em bytes.

� NumOfRecords é o número total de registros no metafile, inclusive o registro de

cabeçalho.

� NumOfHandles é o número de handles atualmente armazenadas na memória

manipula em uma tabela . Este é sempre 0 para dados metafile armazenados em

disco. Reservado não é usado e é sempre zero.

� SizeOfDescrip é o número de caracteres Unicode de 16 bits contidos descrição do

string, inclusive todos os caracteres NULOS. Se este valor for 0 então não há

alguma discrição presente no arquivo.

� OffsOfDescrip é a localização da descrição do string calculado em número de

bytes desde o início do arquivo. Se este valor for 0 então nenhuma descrição de

string está presente no arquivo.

� NumPalEntries indica o número de entradas na palheta de cor. A palheta de cor, se

presente, será localizado no Fim-de-registros do Arquivo. Se este for 0 então

nenhuma palheta de cor está presente.

� WidthDevPixels e HeightDevPixels são a largura e altura do dispositivo de display

em pixeis.

Page 15: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

15

� WidthDevMM e HeightDevMM são a largura e altura do dispositivo de display em

milímetros. [9]

Da a estrutura de cabeçalho SEM, uma descrição opcional de texto pode seguir o registro

de cabeçalho, essa descrição do texto descreve a imagem e o nome do autor. A palheta

opcional especifica as cores usadas para criar o Enhanced metafile.

O restante dos registros identificam as funções de GDI que normalmente costuma criar o

imagem. A seguinte saída hexadecimal corresponde um registro gerado para chamar uma

função SetMapMode.

00000011 0000000C 00000004

O valor 0x00000011 especifica o tipo de registro (corresponde ao constante de

EMR_SETMAPMODE definida no arquivo Wingdi.h). O valor 0x0000000C especifica o

tamanho do registro, em bytes.

O valor 0x00000004 identifica o modo de mapeamento (corresponde ao constante de

MM_LOENGLISH definida na função de SetMapMode).[8]

Uma importante função que se pode adicionar a uma descrição de texto opcional para um

metafile contendo informações sobre a imagem e o autor é a função CreateEnhMetaFile.

Uma aplicação pode apresentar estas strings em uma caixa de diálogo de File Open para

fornecer ao usuário informações sobre metafile como conteúdo que ajudará em selecionar

o arquivo apropriado. Se uma aplicação inclui a descrição de texto, deve prover um

ponteiro para a String quando este chamar a função CreateEnhMetaFile [7].

5 –ALGUMAS FORMAS DE CONVERSÃO DOS ARQUIVOS.

5.1-FUNÇÃO DE CONVERSÃO: WMF x EMF e BROWSER SUPORTAVEL

Para converter um Windows format metafile para um Enhanced format metafile, é

chamada a função GetMetaFileBitsEx para recuperar os dados do Windows format

metafile e então se chama a função SetWinMetaFileBits para converter este dados em um

formato Enhanced metafile.

Page 16: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

16

Para converter registro de um formato Enhanced metafile em um registro Windows

formate Metafile, será chamado a função de GetWinMetaFileBits. [6]

Para converter um WMF para outro formato EMF, é possível sim, já que a maioria dos

programas Windows dão suporte aos arquivos WMF e no entanto não dão suporte aos

arquivos do tipo EMF.

Já uma conversão em contrário, também seria possível já que a melhor razão para fazer

isto seria porque, a maioria de programas de Windows dão suporte aos arquivos WMF e

como o formato de WMF é um subconjunto do formato EMF, assim pode se perder

algumas informações quando faz-se a conversão do EMF para WMF.[5]

Quanto a utilização de Web Browsers, estes não suportam a exibição diretamente do

formatos WMF ou EMF como o caso do padrão GIF, JPEG e PNG.

Porém, existe um plug-in de Browser disponível para o Netscape e Microsoft browsers que

podem exibir arquivos de EMF em uma página de web. Segundo o endereço:

http://www.emfviewer.com/ para maiores detalhes.

5.2 - CONVERSÃO DO ARQUIVO BITMAP AO CANAL DE TRANSPARÊNCIA

DO WMF?

Esta conversão, diferentemente das outras conversões citadas, em teoria é possível sim,

mas na prática, ainda procura-se um bom caminho e a melhor forma para fazer isto.

Basicamente, existem duas abordagens que podemos adotar:

� Coloca-se um arquivo bitmap em um metafile junto com uma máscara de

transparência bitmap e use o propriamente de operações bitmap para aplicar a

máscara ao bitmap antes de exibir isto na tela, ou

� Converta o bitmap a um metafile pelo método de "vetorizing" e então apaga-se

todos os objetos da cor de fundo.

Um dos programas capaz de selecionar e apagar correctamente a cor de fundo do objecto

pode ser referenciado o programa usado pelo Companion Metafile.[3]

Page 17: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

17

5.3 – CONVERSÃO ENTRE UM ARQUIVO BMP A ARQUIVO WMF

Existem dois tipos de conversões que podem ser executadas e são muito diferentes.

A maioria de programas de conversão converte um BMP para um arquivo WMF

simplesmente colocando o bitmap em um “Shell” metafile. O arquivo WMF resultante é

ainda essencialmente o mesmo que o original bitmap não oferecendo alguma vantagem

particular acima do arquivo BMP original.

Porém, alguns programas de conversão "auto-trace" ou "vetorize" a conversão de áreas de

cor de bitmap são feitas por linhas e polígonos que são então armazenados no arquivo de

WMF. Estes arquivos WMF podem ser editados pelo Metafile, usando outros Editores

desde editores proprietários assim como editores livres como: IMSI

(http://www.imsisoft.com);Adobe (http://www.adobe.com); KVEC

(http://www.kvec.de/english/index.htm).

5.4 – CONVERSÃO DE UM ARQUIVO WMF A: GIF OU JPEG PARA USAR EM

UMA PÁGINA DE WEB.

Não são fáceis de ser encontradas utilitários livres para converter diretamente de WMF

para GIF e JPEG. Como uma das soluções e muito simples, pode ser encontrada numa

versão mais recente de Microsoft Word, salvando um documento contendo um arquivo

WMF como HTML - este converte WMF e outros arquivos de gráficos no documento para

um arquivo GIF.

Caso contrário, pode-se usar um caminho mais longo e difícil que seria o uso DO

Software de Metafile Companion para copiar um arquivo WMF para área de transferência,

colando isto no Paint do Windows, daí copia-se a imagem do bitmap para a ária de

transferência e depois a pasta para um programa como LViewPro (http://www.lview.com)

isso pode-se ser salvo como um arquivo do tipo GIF ou uma outra extensão.

Page 18: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

18

6 - RESUMO COMPARATIVO ENTRE O WMF E EMF E ALGUNS DE OUTROS

FORMATOS EXISTENTE.

Na tabela 4 está destacado um resumo comparativo sobre os formatos WMF e EMF,

focando necessariamente as principais vantagens e desvantagens apresentadas entre eles,

além disso, é apresentado um resumo de alguns outros formatos hoje existente no mercado.

Tabela 4 – Tabela comparativa sobre os formatos WMF e EMF entre outros

IMAGENS FORMATO VETORIAL

Vantagens Desvantagens

Formato

Arquivo Compressão

WMF � Trabalha bem em Office

2000.

� Não suportado pelos

browsers Web. � 16 bits � Não

EMF

� Formato arquivo

Extensível;

� Uso mais eficiente em

relação ao WMF:

- Informações escalares

Embutidas.

-.Descrições Embutidas são

salvas com o arquivo.

- .Melhorias em palhetas de cor

e independência de dispositivo.

� Extensibilidade resulta

em muitos tipos

diferentes de imagens

EMF.

� Nem todos os arquivos

de EMF são

compatíveis com todos

os programas isto

suportam o padrão

EMF.

� Não suportado pelos

browsers web.

� 32 bits � Não

- O formato EMF é um formato extensível, o que significa que um programador pode modificar a

especificação original para adicionar a funcionalidade ou encontra necessidades específicas. Isto pode levar

a incompatibilidades entre tipos diferentes de imagens EMF. [4]

IMAGENS FORMATO MATRICIAL

Vantagens Desvantagens Compressão

Page 19: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

19

BMP

� - 1 bit através de profundidade de

cor de 24 bit.

� - Extensamente compatíveis com

programas de Windows existentes,

especialmente programas mais

antigos.

� - Satisfatórios para papel de parede

em Windows.

� - Nenhuma compressão, que

resulta em arquivos muito

grandes.

� -Não sustentado por Web

browsers

� - Não é satisfatório para Web

páginas e fotos.

� Não

PCX � Formato Normal suportada pelos

programas Windows e MS-DOS.

� Não suportado por Web

browsers � Sim

PNG

� Nível Alto compressão com pouca

perda;

� Transparência de canal de Alfa;

� Correção de Gama;

� Entrelaçando;

� Suportado pelos Web browsers mais

recente;

� Não suporte browsers mais

antigos;

� s de arquivo na Internet, o PNG

fornece compressão menor do

que a compressão perdida em

JPG;

� Não suporte para multiimage ou

animação de arquivos.

� Sim

JPG

� Compressão Superior para arte

fotográfica ou realista

� Compressão Variável permite

controle de tamanho de arquivo

� Entrelaçamento (para arquivos de

JPEG Progressivos)

� Sustentado Extensamente para

padrão de Internet

� Compressão com perda

degradando dados de imagens

originais.

� Quando se edita os arquivos

JPEG, compõe a degradação dos

dados de retrato original; esta

degradação é cumulativa.

� JPEG não é satisfatório para

imagens mais simples que

contêm poucas cores, áreas

largas de cor semelhante, ou

diferenças totalmente em brilho.

� Sim

Fonte Referência [4]

Page 20: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

20

7 - CONCLUSÃO:

Embora o formato Windows Metafile é específico para Microsoft Windows, muitas

aplicações baseadas em plataforma não Windows suportam este formato. Por causa da

popularidade difundida do Microsoft Windows GUI, o formato Windows Metafile se

tornou um formato bastante utilizado para aplicações de criação e principalmente edição

de imagens e fotografias de alta resolução, sendo assim, hoje este formato Metafile está

sendo suportadas na maioria das plataformas inclusive os não Windows.

Nas versões anteriores do Windows, havia riscos sérios de vulnerabilidades a partir do

momento em que um usuário exibisse um arquivo metafile na sua máquina, passando

controle a outras pessoas através da aplicação que muitas vezes podem ser desenvolvidas

com fins maliciosos, mas hoje existem incorporados aos sistemas mais recentes como o

Windows Xp devido a distribuição do SP2 (pacote de serviços 2), para tanto, mais

informações detalhadas podem ser encontradas no: Boletim de Segurança da Microsoft

MS06-001.[3]

Existe, todavia, uma diferença notável entre os dois formatos em questão, nomeadamente

em termos de quantidades de funções usadas, onde o EMF, supera largamente o WMF e

também quanto aos bytes de cabeçalho entre eles, por isso o EMF, é dito ser uma versão

revisada e nova de WMF Standard trazendo novas funções.

Por outro lado existe uma desvantagem a ser notada no que diz respeito a importação /

edição e conversão de arquivos EMF a WMF, fazendo com que o arquivo EMF sofra

alguma perda, já que ao ser convertido de volta para um WMF, o arquivo sofreria alguma

perda, na sua qualidade já que o EMF é por definição um formato mais evoluído do que o

anterior WMF .

Outra questão, a se frisar é a questão do tamanho que o arquivo metafile pode alcançar na

ordem espantosamente de 4GB, tendo como um dos factores propiciantes a não aceitação

de qualquer técnica de compressão e ou compactação.

WMF é um formato Windows metafile Standard de 16 bits que apareceu com Windows

2.0. Já os arquivos EMF são a revisão de 32 bits do formato de WMF.Os arquivos de EMF

Page 21: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

21

estenderam funcionalidade acima de arquivos de WMF, inclusive uma palheta de cor e

suporte completo a todos comandos de GDI de 32 bits.

O Win32 API (Windows 95 e Windows NT) dão suporte a objectos OLE de 32 bits para

ambos os arquivos WMF e EMF.

O Win16 e Win32s APIs (Windows 3.x) e objectos OLE de 16 bits apenas suportam

arquivos de WMF, não fazendo com que portanto, arquivo WMF seja banido a sua

utilização que é por conseguinte bastante utilizado.

No processo de edição dos projectos CAD, é amplamente utilizado o formato Metafile.

Com este trabalho, pensa-se termos compreendido um pouco sobre os formatos

proprietário Windows Metafile, embora, ainda tem-se muito a acrescentar, apesar das

fontes de consulta são poucas, já que se trata de uma documentação proprietária, como tal

a dificuldade em se encontrar a publicação de um artigo sobre o assuntos por outras

entidades de pesquisa e desenvolvimento e padronização, resumindo a pesquisa em parte

ao endereço Microsoft Windows.

Em suma, um dos objectivo deste trabalho, que inicialmente pensávamos era dá-lo um

enfoque semelhante ao estudo de outros padrões de formatos estudados na matéria

Fundamento de sistemas multimídia, mas, depois das pesquisas, conclui-se que não é

possível, dar o mesmo enfoque, no quesito formato de imagens uma vez que, como

discutido na secção de introdução o formato metafile não suporta técnicas de compressão

nem compactação, se os arquivos forem gerados através de linha de códigos C.

Entretanto, como um formato metafile pode ser composto de, por exemplo, formato JPEP,

entre outros, o editor do formato Metafile ao importar esses padrões, estes levam juntos as

técnicas de compressão embutidas.

Em resumo, não houve alterações profundas, quanto ao padrão metafile, conforme antes

imaginávamos, este padrão é simplesmente dotada de técnicas particulares e utilidades

especificas e de uso incomum. Com isso, percebemos também que adiantou a pesquisa,

pelo fato de que passamos doravante a ter informações sobre o assunto.

Page 22: Formatos proprietários da Microsoft para representação ...debora/fsmm/trab-2006-2/metafile.pdf · Espera-se que com este trabalho, cria-se e abre margens de ... desenhar uma cena.

22

9- REFERÊNCIAS BIBLIOGRÁFICAS Acessadas entre as datas de 28/10/2006 a 20/11/2006 [1] - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/metafile_0hmb.asp [2] - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/metafile_8tgz.asp [3] - http://wvware.sourceforge.net/caolan/ora-wmf.html#MICMETA-DMYID.3#MICMETA-DMYID.3 [4] - http://animalscience.ucdavis.edu/intranet/Manuals/PictureFormat/default.htm [5] - http://www.companionsoftware.com/PR/WMRC/WindowsMetafileFaq.html [6] - http://msdn.microsoft.com/library/shared/deeptree/asp/toolbar.asp?tbcfg=/library/toolbarconfig.xml [7] - http://msdn.microsoft.com/library/en-us/gdi/metafile_2gdv.asp?frame=true [8] - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/metafile_3tir.asp [9] - http://wvware.sourceforge.net/caolan/ora-wmf.html#MICMETA-DMYID.3#MICMETA-DMYID.5