问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB下,用API 函数实现图片的任意旋转,急!3Q

发布网友 发布时间:2022-04-24 14:03

我来回答

2个回答

热心网友 时间:2023-10-15 14:31

以下为网上找的,在哪里找的我也不记得了,要不就把网址发上来了

用VB6轻松实现图片旋转

使用过ACDSEE的朋友一定对它的JPG图片旋转功能记忆犹新,其实我们利用VB6的先进功能,可以对任意格式的图片文件(包括JPG、GIF、BMP、ICO等)进行45度、180度旋转,确实可以和ACDSEE一较高下。
启动vb6建立一个标准exe工程,首先添加两个图片框(picture1和picture2),添加三个命令按钮command1(caption=“正常显示”)、command2(caption=“180度倒立”)、command3(caption=“45度旋转”),双击窗体,写入以下代码:
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度旋转
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$#@60;c2yThenn=c2yElsen=c2x
n=n-1
pic1hDC=pic1.hdc
pic2hDC=pic2.hdc
Forp2x=0Ton
Forp2y=0Ton
Ifp2x=0Thena=Pi/2Elsea=Atn(p2y/p2x)
r=Sqr(1&*p2x*p2x+1&*p2y*p2y)
p1x=r*Cos(a+theta)
p1y=r*Sin(a+theta)
c0&=GetPixel(pic1hDC,c1x+p1x,c1y+p1y)
c1&=GetPixel(pic1hDC,c1x-p1x,c1y-p1y)
c2&=GetPixel(pic1hDC,c1x+p1y,c1y-p1x)
c3&=GetPixel(pic1hDC,c1x-p1y,c1y+p1x)
Ifc0&$#@60;$#@62;-1ThenSetPixelpic2hDC,c2x+p2x,c2y+p2y,c0
Ifc1&$#@60;$#@62;-1ThenSetPixelpic2hDC,c2x-p2x,c2y-p2y,c1
Ifc2&$#@60;$#@62;-1ThenSetPi pic2hDC,c2x+p2y,c2y-p2x,c2
Ifc3&$#@60;$#@62;-1ThenSetPixelpic2hDC,c2x-p2y,c2y+p2x,c3
Next
Next
EndSub

PrivateSubCommand1_Click()‘正常复制
Picture2.Cls
px=Picture1.ScaleWidth
py=Picture1.ScaleHeight
StretchBltPicture2.hdc,px,0,-px,py,Picture1.hdc,0,0,px,py,SRCCOPY
EndSub

PrivateSubCommand2_Click()‘180度倒立
Picture2.Cls
px=Picture1.ScaleWidth
py=Picture1.ScaleHeight
StretchBltPicture2.hdc,0,py,px,-py,Picture1.hdc,0,0,px,py,SRCCOPY
EndSub

PrivateSubCommand3_Click()‘45旋转
Picture2.Cls
Callbmp_rotate(Picture1,Picture2,3.14/4)
EndSub

PrivateSubForm_Load()
OnErrorResumeNext
Me.Caption=App.Title"添加应用程序标题
Me.Left=(Screen.Width-Me.Width)/2
Me.Top=(Screen.Height-Me.Height)/2"窗体具中
Picture1.ScaleMode=3
Picture2.ScaleMode=3
EndSub

热心网友 时间:2023-10-15 14:31

提供个思路:
可以使用
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
来实现.
先取得PICBOX的所有像素坐标,计算旋转N度后的所有像素的坐标,清除PIC显示,最后再SETPIXEL。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
金丝熊,一般吃什么啊?水果还是蔬菜? 怎样管理wp7上安装的软件?我手机是三星i917 》有文件管理软件吗?、我的... 二片式球阀(关于二片式球阀的基本详情介绍) 二片式球阀工作原理 二片式球阀优点 不锈钢二片式球阀安装与维护及注意事项 二片式球阀两片式球阀的结构特点 不锈钢二片式球阀结构特点 不锈钢二片式球阀简介 吃刚出炉的蛋糕致癌? 怎样用API做图片的热点! php通过api接口上传远程图片,图片不完整。 php怎么通过api接口上传图片 php怎么把远程图片通过api接口传到另外一个站点上? Windows程序设计——C语言调用api编写图片查看器 求助关于微信上传图片功能的API使用方法 图片通过api上传了,能访问到,FTP进去找不到是怎么回事? vb如何用API缩放图片??? 关于显示图像的 API 函数 什么是图形API? 图片审核api接口哪家好? 在线识别情侣头像 怎么识别一张头像是不是情头? 预售预售预售,手机配件的专营店,可以贴牌,有需要的吗??? 森海塞尔(淘宝 一佰手机配件官网,一佰手机配件怎么样!一佰手机配件专营店 洛阳最大的手机维修、手机配件批发市场在哪啊 买手机配件哪里好? 听说 ST华歆数码手机配件专营店不错 ? Vistarst 种类齐全、质量也好,还经常有最新产品 手机配件专卖店一个月能赚多少钱? htc one系列手机配件哪买 能否表单api生成缩略图,同时又要保留原图? 截图API函数 怎么获取这个api的链接输出图片到HTML上啊? 在java里有没有提供什么api能对某个图片进行图片对比查找 蜂窝移动网络里网易云音乐的开关打不开,不能用流量听歌。 我手机的网易云音乐用流量没法联网了,今天突然就这样了,求解到底是什么... 为什么买了网易云免流量在线听歌,可是还是会掉流量。 听音乐免流量了,啥时候看视频能免流量 如何解决超星尔雅网课截止,没看完的问题? 用手机打开小度后怎样放视频回播 - 信息提示 昆山三一重工焊工工资怎么样啊一个月可以那多少钱啊!好进吗 大专生容易进三一重工吗?在里面做事大概多少钱一个月, 上海三一重工怎么样我想去!可不好进啊!怎么办啊!有谁帮助一下? 能进去三一重工上班吗? 昆山三一重工焊工待遇怎么样啊。人好进吗?我只会手把焊。可以进吗?上班时间是多少?加班多不 请问怎样才能进三一重工和中石油? 沈阳第一机床 北方重工 三一重工等国企现在好进吗? 三一重工好进吗,我是中专学历,已经工作了两年 三一重工这只股票怎么样?现在可以进入吗?