用VB6輕松實現(xiàn)圖片旋轉(zhuǎn)

字號:

使用過ACDSEE的朋友一定對它的JPG圖片旋轉(zhuǎn)功能記憶猶新,其實我們利用VB6的先進功能,可以對任意格式的圖片文件(包括JPG、GIF、BMP、ICO等)進行45度、180度旋轉(zhuǎn),確實可以和ACDSEE一較高下。
    啟動vb6建立一個標準exe工程,首先添加兩個圖片框(picture1和picture2),添加三個命令按鈕command1(caption=“正常顯示”)、command2(caption=“180度倒立”)、command3(caption=“45度旋轉(zhuǎn)”),雙擊窗體,寫入以下代碼:
    PrivateConstSRCCOPY=&HCC0020
    PrivateConstPi=3.14
    PrivateDeclareFunctionSetPixelLib"gdi32"(ByValhdcAsLong, ByValxAsLong,ByValyAsLong,ByValcrColorAsLong)AsLong
    PrivateDeclareFunctionGetPixelLib"gdi32"(ByValhdcAsLong, ByValxAsLong,ByValyAsLong)AsLong
    PrivateDeclareFunctionStretchBltLib"gdi32"(ByValhdcAsLong,  ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,   
    ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValnSrcWidth AsLong,ByValnSrcHeightAsLong,ByValdwRopAsLong)  AsLong
    privateSubbmp_rotate(pic1AsPictureBox,pic2AsPictureBox,ByValtheta)‘45度旋轉(zhuǎn)
    Dimc1xAsInteger,c1yAsInteger
    Dimc2xAsInteger,c2yAsInteger
    DimaAsSingle
    Dimp1xAsInteger,p1yAsInteger
    Dimp2xAsInteger,p2yAsInteger
    DimnAsInteger,rAsInteger
    c1x=pic1.ScaleWidth\2
    c1y=pic1.ScaleHeight\2
    c2x=pic2.ScaleWidth\2
    c2y=pic2.ScaleHeight\2
    Ifc2x    n=n-1
    pic1hDC=pic1.hdc
    pic2hDC=pic2.hdc
    Forp2x=0Ton
    Forp2y=0Ton