用過ACDSEE的朋友壹定對它的JPG圖像旋轉功能記憶猶新。事實上,我們可以旋轉任何格式的圖像文件(包括JPG,GIF,BMP,ICO等。)在45度和180度通過使用VB6的高級功能,真的可以和ACDSEE抗衡。
啟動vb6構建壹個標準的exe項目。首先添加兩個圖片框(picture1和picture2),並添加三個命令按鈕:command1(caption= "正常顯示")、Command2 (caption = "180度倒立")和Command3 (caption = "45度旋轉")。
PrivateConstSRCCOPY = & ampHCC0020
PrivateConstPi=3.14
privatdeclarefunctionsetpixellib " GDI 32 "(ByValhdcAsLong,ByValxAsLong,ByValyAsLong,ByValcrColorAsLong)AsLong
privatedeclaurefunctiongetpixellib " GDI 32 "(ByValhdcAsLong,ByValxAsLong,ByValyAsLong)AsLong
privatdeclarefunctionstretchbltlib " GDI 32 "(ByValhdcAsLong、ByValxAsLong、ByValyAsLong、ByValnWidthAsLong、ByValnHeightAsLong、ByValhSrcDCAsLong、ByValxSrcAsLong、ByValySrcAsLong、ByValnSrcWidth AsLong、ByValnSrcHeightAsLong、ByValdwRopAsLong)AsLong
PrivateSubBMP _ rotate(pic 1 as PictureBox,PIC2AS PictureBox,ByvalTheta)' 45度旋轉。
dimc 1x as整數,c 1ya整數
Dimc2xAsInteger,c2yAsInteger
迪馬辛格
dimp 1x a整數,p 1ya整數
Dimp2xAsInteger,p2yAsInteger
DimnAsInteger,rAsInteger
c1x=pic1。刻度寬度\2
c1y=pic1。ScaleHeight\2
c2x=pic2。刻度寬度\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 & amp;p2x * p2x+1 & amp;*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-1ThenSetPixelpic2hDC,c2x+p2x,c2y+p2y,c0
Ifc1。& lt& gt-1ThenSetPixelpic2hDC,c2x-p2x,c2y-p2y,c1
Ifc2 & amp& lt& gt-1ThenSetPixelpic2hDC,c2x+p2y,c2y-p2x,c2
Ifc3 & amp& lt& gt-1ThenSetPixelpic2hDC,c2x-p2y,c2y+p2x,c3
然後
然後
末端接頭
私有子命令1 _ click()'普通副本
圖片2。Cls
px=Picture1。刻度寬度
py=Picture1比例尺高度
StretchBltPicture2.hdc,px,0,-px,py,Picture1.hdc,0,0,px,py,SRCCOPY
末端接頭
私人子命令2 _ click ()' 180度倒立
圖片2。Cls
px=Picture1。刻度寬度
py=Picture1比例尺高度
StretchBltPicture2.hdc,0,py,px,-py,Picture1.hdc,0,0,px,py,SRCCOPY
末端接頭
私有子命令3 _ click ()' 45 rotate
圖片2。Cls
Callbmp_rotate(圖片1,圖片2,3.14/4)
末端接頭
PrivateSubForm_Load()
onErrorResumeNext
我。Caption=App。Title "添加應用程序標題。
我。Left=(屏幕。寬度-我。寬度)/2
我。top =(屏幕。身高-我。高度)/2英寸。
圖片1。ScaleMode=3
圖片2。ScaleMode=3
末端接頭