Usé vb para crear un navegador. ¿Cómo puedo lograr el efecto de rotación?
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 p>
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