Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Como girar, refletir e distorcer imagens

Você pode girar, refletir e inclinar uma imagem especificando pontos de destino para os cantos superior esquerdo, superior direito e inferior esquerdo da imagem original. Pontos de três destino determinam uma transformação afim que mapeia a imagem original de retangular para um paralelogramo.

Por exemplo, suponha que a imagem original é um retângulo com canto superior esquerdo em (0, 0), o canto superior direito em (100, 0) e o canto inferior esquerdo em (0, 50). Agora suponha que você mapeie os três aponta para pontos de destino da seguinte maneira.

Ponto original

Ponto de destino

Superior-esquerdo (0, 0)

(200, 20)

Superior direito (100, 0)

(110, 100)

Inferior esquerdo (0, 50)

(250, 30)

A ilustração a seguir mostra a imagem original e a imagem mapeada para um paralelogramo. A imagem original foi inclinada, refletida, girada e traduzida. O eixo x na borda superior da imagem original é mapeado para a linha que percorre (20, 200) e (110, 100). O eixo y ao longo da borda esquerda da imagem original é mapeado para a linha que percorre (20, 200) e (250, 30).

Stripes

A ilustração a seguir mostra uma transformação semelhante aplicada a uma imagem fotográfica.

Transformed Climber

A ilustração a seguir mostra uma transformação semelhante aplicada um metarquivo.

Transformed Metafile

O exemplo a seguir produz as imagens mostradas na primeira ilustração.


    Point[] destinationPoints = {
new Point(200, 20),   // destination for upper-left point of 
                      // original
new Point(110, 100),  // destination for upper-right point of 
                      // original
new Point(250, 30)};  // destination for lower-left point of 
    // original

    Image image = new Bitmap("Stripes.bmp");

    // Draw the image unaltered with its upper-left corner at (0, 0).
    e.Graphics.DrawImage(image, 0, 0);

    // Draw the image mapped to the parallelogram.
    e.Graphics.DrawImage(image, destinationPoints);


O exemplo mostrado foi desenvolvido para Windows Forms, e precisa de um PaintEventArgs e, que é um parâmetro do evento Paint. Certifique-se de substituir Stripes.bmp com o caminho para uma imagem que é válido em seu sistema.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft