Documentação
  • Bem-vindo
  • Biblioteca Padrão
  • Características da linguagem
  • Comentários
  • Declaração e inicialização de variáveis
    • Inferência automática de tipos
  • Tipos de dados
    • Valores numéricos
    • Estruturas e Uniões de dados
      • Acessando os valores dos campos de estruturas
    • Strings e caracteres
      • Subtextos
      • Percorredores
    • Listas duplamente vinculadas
    • Conversão de tipos
  • Laços e Desvios condicionais
    • Lidando com vazamentos de memória em laços
  • Operadores
    • Precedência e Ordem de avaliação de operadores
  • Rotinas, Parâmetros e Funções
  • Trabalhando com Bibliotecas externas
  • Trabalhando com Instruções Hexadecimais
  • Callbacks
  • Introduzindo as palavras-chave "Preserve" e "original"
  • Usando a preposição "de"
  • Cores
  • Gráficos de Tartaruga (Turtle Graphics)
  • Algoritmos de Exemplo
    • Olá Mundo
    • A + B
    • Agenda Telefônica
    • Animação de sprites
    • Fatorial
    • 100 Portas
    • Dó Ré Mi Fá
    • API Win32 - GdipImageRotateFlip
    • Pintando como Claude Monet
    • Exemplo de interface
    • Evitando problemas de cintilação (Flickering)
    • Desenhando e pintando retângulos e caixas
    • Cofrinho Virtual
Fornecido por GitBook
Nesta página

Isto foi útil?

Editar no GitLab
  1. Algoritmos de Exemplo

API Win32 - GdipImageRotateFlip

AnteriorDó Ré Mi FáPróximoPintando como Claude Monet

Atualizado há 3 meses

Isto foi útil?

Observação: para executar este programa salve a imagem abaixo ( ou outra de sua escolha) e ajuste o path onde for necessário.

Rotina para que se execute o programa:
  Carregue as bibliotecas padrão do sistema. 
  Limpe a tela usando a cor eigengrau.
  Extraia o endereço da pasta deste módulo desde o endereço completo deste módulo.
  Atribua o endereço da pasta deste módulo seguido de "lobo.png" para um endereço completo.
  \ AJUSTE O PATH CONFORME NECESSÁRIO 
  Atribua o endereço completo para uma string denominada path.
  Carregue uma primeira imagem usando o path. 
  Carregue uma segunda imagem usando o path.
  Carregue uma terceira imagem usando o path.
  Carregue uma quarta imagem usando o path.
  Carregue uma quinta imagem usando o path.
  Carregue uma sexta imagem usando o path.
  Carregue uma sétima imagem usando o path.
  Carregue uma oitava imagem usando o path.
  Mova a primeira imagem usando 50 pixels e 100 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta primeira imagem e o Rotate90FlipNone. \ Rotate90FlipNone/Rotate270FlipXY
  Pinte a primeira imagem. \ 
  Mova a segunda imagem usando 400 pixels e 100 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta segunda imagem e o Rotate90FlipX. \ Rotate90FlipX/Rotate270FlipY
  Pinte a segunda imagem.
  Mova a terceira imagem usando 800 pixels e 100 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta terceira imagem e o RotateNoneFlipY. \ RotateNoneFlipY/Rotate180FlipX
  Pinte a terceira imagem.
  Mova a quarta imagem usando 1200 pixels e 100 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta quarta imagem e o RotateNoneFlipXY. \ RotateNoneFlipXY/Rotate180FlipNone
  Pinte a quarta imagem.
  Mova a quinta imagem usando 50 pixels e 500 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta quinta imagem e o Rotate90FlipY. \ Rotate90FlipY/Rotate270FlipX
  Pinte a quinta imagem.
  Mova a sexta imagem usando 400 pixels e 500 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta sexta imagem e o Rotate90FlipXY. \ Rotate90FlipXY/Rotate270FlipNone
  Pinte a sexta imagem.
  Mova a sétima imagem usando 800 pixels e 500 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta sétima imagem e o RotateNoneFlipNone. \ RotateNoneFlipNone/Rotate180FlipXY
  Pinte a sétima imagem.
  Mova a oitava imagem usando 1200 pixels e 500 pixels.
  Processe "gdiplus.dll" "GdipImageRotateFlip" com o gpBitmap desta oitava imagem e o RotateNoneFlipX. \ RotateNoneFlipX/Rotate180FlipY
  Pinte a oitava imagem.
  Atribua 24 pixels à altura desta fonte padrão.
  Posicione os rótulos.
  Itere.
    Atualize a tela.
    Se a tecla Esc estiver sendo pressionada, pare.
    Se a tecla Enter estiver sendo pressionada, pare.
  Reitere.
  Se a tecla Esc estiver sendo pressionada, 
    Destrua a primeira imagem;
    Destrua a segunda imagem;
    Destrua a terceira imagem;
    Destrua a quarta imagem;
    Destrua a quinta imagem;
    Destrua a sexta imagem;
    Destrua a sétima imagem;
    Destrua a oitava imagem;
    Feche o programa.
  Se a tecla Enter estiver sendo pressionada, 
    Destrua a primeira imagem;
    Destrua a segunda imagem;
    Destrua a terceira imagem;
    Destrua a quarta imagem;
    Destrua a quinta imagem;
    Destrua a sexta imagem;
    Destrua a sétima imagem;
    Destrua a oitava imagem;
    Feche o programa.

Rotina para que se carregue uma imagem usando um endereço completo:
  Leia o endereço completo para a imagem.
  Redimensione a imagem para 300 pixels por 300 pixels.

Um rótulo é uma estrutura com
  Uma caixa e
  Um nome.

Rotina para que se exiba um rótulo:
  Pinte o nome deste rótulo na caixa deste rótulo usando a cor branca.

Rotina para que se posicione os rótulos:
  Posicione o primeiro rótulo.
  Posicione o segundo rótulo.
  Posicione o terceiro rótulo.
  Posicione o quarto rótulo.
  Posicione o quinto rótulo.
  Posicione o sexto rótulo.
  Posicione o sétimo rótulo.
  Posicione o oitavo rótulo.

Rotina para que se posicione o primeiro rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 50 pixels para a coordenada X1 deste primeiro rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 170 pixels para a coordenada Y1 deste primeiro rótulo.
  Atribua o primeiro nome ao nome deste primeiro rótulo.
  Exiba o primeiro rótulo.

Rotina para que se posicione o segundo rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 400 pixels para a coordenada X1 deste segundo rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 170 pixels para a coordenada Y1 deste segundo rótulo.
  Atribua o segundo nome ao nome deste segundo rótulo.
  Exiba o segundo rótulo.

Rotina para que se posicione o terceiro rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 800 pixels para a coordenada X1 deste terceiro rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 170 pixels para a coordenada Y1 deste terceiro rótulo.
  Atribua o terceiro nome ao nome deste terceiro rótulo.
  Exiba o terceiro rótulo.

Rotina para que se posicione o quarto rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 1200 pixels para a coordenada X1 deste quarto rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 170 pixels para a coordenada Y1 deste quarto rótulo.
  Atribua o quarto nome ao nome deste quarto rótulo.
  Exiba o quarto rótulo.

Rotina para que se posicione o quinto rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 50 pixels para a coordenada X1 deste quinto rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 970 pixels para a coordenada Y1 deste quinto rótulo.
  Atribua o quinto nome ao nome deste quinto rótulo.
  Exiba o quinto rótulo.

Rotina para que se posicione o sexto rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 400 pixels para a coordenada X1 deste sexto rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 970 pixels para a coordenada Y1 deste sexto rótulo.
  Atribua o sexto nome ao nome deste sexto rótulo.
  Exiba o sexto rótulo.

Rotina para que se posicione o sétimo rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 800 pixels para a coordenada X1 deste sétimo rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 970 pixels para a coordenada Y1 deste sétimo rótulo.
  Atribua o sétimo nome ao nome deste sétimo rótulo.
  Exiba o sétimo rótulo.

Rotina para que se posicione o oitavo rótulo:
  Atribua a coordenada X1 desta caixa desta tela mais 1200 pixels para a coordenada X1 deste oitavo rótulo.
  Atribua a coordenada Y1 desta caixa desta tela mais 970 pixels para a coordenada Y1 deste oitavo rótulo.
  Atribua o oitavo nome ao nome deste oitavo rótulo.
  Exiba o oitavo rótulo.


O primeiro rótulo é um rótulo.
O segundo rótulo é um rótulo.
O terceiro rótulo é um rótulo.
O quarto rótulo é um rótulo.
O quinto rótulo é um rótulo.
O sexto rótulo é um rótulo.
O sétimo rótulo é um rótulo.
O oitavo rótulo é um rótulo.

O RotateNoneFlipNone é um número igual a 0.
O Rotate180FlipXY é um número igual a 0.
O Rotate90FlipNone é um número igual a 1.
O Rotate270FlipXY é um número igual a 1.
O Rotate180FlipNone é um número igual a 2.
O RotateNoneFlipXY é um número igual a 2.
O Rotate270FlipNone é um número igual a 3.
O Rotate90FlipXY é um número igual a 3.
O RotateNoneFlipX é  um número igual a 4.
O Rotate180FlipY é um número igual a 4.
O Rotate90FlipX é um número igual a 5.
O Rotate270FlipY é um número igual a 5.
O Rotate180FlipX é um número igual a 6.
O RotateNoneFlipY é um número igual a 6.
O Rotate270FlipX é um número igual a 7.
O Rotate90FlipY é um número igual a 7.

O primeiro nome é uma string igual a "Rotate90FlipNone/Rotate270FlipXY".
O segundo nome é uma string igual a "Rotate90FlipX/Rotate270FlipY".
O terceiro nome é uma string igual a "RotateNoneFlipY/Rotate180FlipX".
O quarto nome é uma string igual a "RotateNoneFlipXY/Rotate180FlipNone".
O quinto nome é uma string igual a "Rotate90FlipY/Rotate270FlipX".
O sexto nome é uma string igual a "Rotate90FlipXY/Rotate270FlipNone".
O sétimo nome é uma string igual a "RotateNoneFlipNone/Rotate180FlipXY".
O oitavo nome é uma string igual a "RotateNoneFlipX/Rotate180FlipY".

O resultado do programa é este: