Red de conocimiento informático - Espacio del host - Usé vb para crear un navegador. ¿Cómo puedo lograr el efecto de rotación?

Usé vb para crear un navegador. ¿Cómo puedo lograr el efecto de rotación?

Utilice VB6.0 para realizar la rotación de imágenes

Los amigos que hayan utilizado ACDSEE aún deben recordar su función de rotación de imágenes JPG. De hecho, podemos rotar archivos de imagen en cualquier formato (incluidos JPG, GIF, BMP, ICO, etc.) a 45 grados y 180 grados utilizando las funciones avanzadas de VB6, que realmente puede competir con ACDSEE.

Inicie vb6 para crear un proyecto exe estándar. Primero agregue dos cuadros de imagen (imagen1 e imagen2) y agregue tres botones de comando: comando1 (título = "Visualización normal"), Comando2 (título = "inversión de 180 grados") y Comando3 (título = "rotación de 45 grados").

PrivateConstSRCCOPY = ampHCC0020

PrivateConstPi=3.14

privatdeclarefunctionsetpixellib " GDI 32 "(ByValhdcAsLong, ByValxAsLong, ByValyAsLong, ByValcrColorAsLong)AsLong

privatedeclarefunctiongetpixellib " GDI 32 "(ByValhdcAsLong, ByValxAsLong, ByValyAsLong)AsLong

privatdeclarefunctionstretchbltlib " SrcAsLong, ByValnSrcWidth AsLong, ByValnSrcHeightAsLong, ByValdwRopAsLong)AsLong

PrivateSubBMP _ rotar(imagen 1 como PictureBox, PIC2AS PictureBox, ByvalTheta)' rotación de 45 grados.

dimc 1x como entero, c 1ya entero

Dimc2xAsInteger, c2yAsInteger

dimc 1x como entero, p 1ya entero

Dimp2xAsInteger, p2yAsInteger

DimnAsInteger, rAsInteger

c1x=pic1. Ancho de escala\2

c1y=pic1. EscalaAltura\2

c2x=pic2. Ancho de escala\2

c2y=pic2.

ScaleHeight\2

Ifc2x ltc2yThenn=c2yElsen=c2x

n=n-1

pic1hDC=pic1.hdc

pic2hDC=pic2 .hdc

Forp2x = 0Ton

Forp2y = 0Ton

ifp2x = 0 thena = Pi/2 elsea = Atn(p2y/p2x)

r = Sqr(1 amperio; p2x * p2x 1 amperio; *p2y*p2y)

p 1x = r * Cos(a θ)

p1y=r*Sin( a theta)

c0 amp=GetPixel(pic1hDC, c1x p1x, c1y p1y)

c1. =GetPixel(pic1hDC, c1x-p1x, c1y-p1y)

c2 amp=GetPixel(pic1hDC, c1x p1y, c1y-p1x)

c3 amp=GetPixel(pic1hDC, c1x- p1y,c1y p1x)

Ifc0 amp lt gt-1LuegoSetPixelpic2hDC,c2x p2x,c2y p2y,c0

Ifc1. lt gt-1LuegoSetPixelpic2hDC, c2x-p2x, c2y-p2y, c1

Ifc2 amp lt gt-1LuegoSetPixelpic2hDC, c2x p2y, c2y-p2x, c2

Ifc3 amp lt gt-1LuegoSetPixelpic2hDC, c2x-p2y, c2y p2x, c3

luego

luego

finalizar empalme

Subcomando privado 1_click()'Copia normal

Imagen 2. Cls

px=Imagen1. Ancho de escala

py=alto de escala de Imagen1

StretchBltPicture2.hdc, px, 0, -px, py, Picture1.hdc, 0, 0, px, py, SRCCOPY

Conector final

Subcomando privado 2 _ click()' inversión de 180 grados

Imagen 2. Cls

px=Imagen1. Ancho de escala

py=alto de escala de Imagen1

StretchBltPicture2.hdc, 0, py, px, -py, Picture1.hdc, 0, 0, px, py, SRCCOPY

Conector final

Subcomando privado 3 _ click()' 45 rotar

Imagen 2. Cls

Callbmp_rotate(Imagen 1, Imagen 2, 3.14/4)

Conector final

PrivateSubForm_Load()

onErrorResumeNext

Yo. Título=Aplicación. Título "Agregar título de la aplicación.

i.Left=(Screen.Width - i.Width)/2

i.top = (Screen.Height - i.Height)/ 2 pulgadas

Imagen 1. ScaleMode=3

Imagen 2.

ScaleMode=3

Conector final