vb savepicture用法
- 格式:docx
- 大小:70.94 KB
- 文档页数:2
VB中PaintPicture图形方法的使用(1)出处:eNet学院责任编辑:zwg[01-12-13 18:17] 作者:enet 在VB中提供了完善的做图方法, 可以在窗体或图形框中绘制各种图形, 其中提供了一个方便的图像处理命令即:PaintPicture, 此命令的功能与WINDOWS API 函数BitBlt类似,但由于不用做API函数说明,并且有它独特的功能,所以更有它的方便之处, 使用它可以完成很多图像的特殊处理工作。
一、语法格式:PaintPicturePic,destX,destY,destWidth,destHeight,scrX,scrY,scrWidth,scrHeight 其中Pic:为图片对象, 如图形框Picture等;destX,destY:目标图像位置;destWidth,destHeight:目标图像尺寸;scrX,scrY:原图像的裁剪坐标;scrWidth,scrHeight:原图像的裁剪尺寸;从以上格式可以看出,此命令的功能就是把一个源图像资源任意复制到指定的区域,并且通过改变参数destWidth与destHeight值,还可以改变复制后的图像的尺寸,实现放大或缩小图像显示, 甚至可以置这两个属性为负值, 这样可使目标图像在水平方向翻转,实现特殊效果的图像显示。
二、应用举例1.墙纸的制作所谓的墙纸, 就是用一个小尺寸的图像连续在一个区域显示, 形成规则的重复图像, 也称为图像的平铺显示,利用“PaintPicture"命令可以方便的完成此工作, 即用一个固定的图像资源多次连续复制到窗口中; 复制过程中必须准确计算下一图像的起始位置; 显示过程中可采取两种方法, 第一种方法可置源图像资源即图形框的AutoSize属性为真, 并且显示过程中按源图像的实际尺寸复制, 这是正常的图像平铺显示; 还有一种方法就是通过置AutoSize 属性为假, 然后改变图形框的尺寸, 或者直接修改目标图像的尺寸, 这样可实现放大或缩小图像的平铺显示。
1.PictureBox控件图片到剪切板dim im as Image = puter.Clipboard.GetImage将图片复制到剪贴板是一定要先清空剪贴板dim im1 as image=PictureBox1.imageputer.Clipboard.Clearputer.Clipboard.setImage(im1)LoadPicture函数将图形载入到窗体的Picture属性、PictureBox控件或Image控件。
2.给定路径图片到剪切板Clipboard.ClearClipboard.SetData LoadPicture("c:/test1.gif")API说明:Clipboard对象提供对系统Clipboard的访问。
说明 Clipboard对象用于操作剪贴板上的文本和图形。
它使用户能够复制、剪切和粘贴应用程序中的文本和图形。
在复制任何信息到Clipboard对象中之前,应使用Clear方法清除Clipboard对象中的内容,例如Clipboard.Clear。
注意所有Windows应用程序共享Clipboard对象,因此当切换到其它应用程序时,剪贴板内容会改变。
Clipboard对象可包含多段数据,只要每段数据的格式不同。
例如,可用SetData方法把位图以vbCFDIB格式放到Clipboard中,接着再用SetText方法以vbCFText格式将文本放到Clipboard中。
然后用GetText方法检索文本或用GetData方法检索图形。
当用代码或菜单命令把另一段数据放到Clipboard中时,原Clipboard中相同格式的数据会丢失 SetData方法用以使用指定的图形格式将图片放到Clipboard对象上。
不支持命名参数3.剪切板图片保存为文件SavePicture Clipboard.GetData, "D:\1.bmp"。
自动截屏并保存为图片的VB代码自动定时截屏'每隔一定时间,自动截取桌面图像保存到指定的文件夹中'图片文件名为:P-00001.Bmp、P-00002.Bmp 等'例子需控件:Timer1、Command1、Picture1,都采用默认设置'标有'***** 符号的语句可适当修改,以满足个人的特殊要求Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As RasterOpConstants) As Long Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As LongDim ctCi As LongPrivate Sub Form_Load()Timer1.Enabled = FalseTimer1.Interval = 1000 '*****每隔1000 毫秒(1秒)保存一次Picture1.AutoRedraw = True: Picture1.ScaleMode = vbPixels Picture1.Move 0, 0, Screen.Width, Screen.HeightPicture1.Visible = FalseMe.Caption = "自动定时截屏"Command1.Caption = "开始截屏"End SubPrivate Sub Command1_Click()Timer1.Enabled = Not Timer1.EnabledIf Timer1.Enabled Then Command1.Caption = "暂停截屏" Else Command1.Caption = "开始截屏" End SubPrivate Sub Timer1_Timer()Dim nDC As Long, dl As Long, nPath As String, nName AsStringnPath = "D:\MyPic" '*****保存的目的文件夹If Dir(nPath, 23) = "" Then MkDir nPathnDC = GetWindowDC(0)'dl 返回非零表示成功,零表示失败dl = BitBlt(Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleWidth, nDC, 0, 0, vbSrcCopy) ctCi = ctCi + 1 nName = ctCidl = 5 - Len(nName)If dl > 0 Then nName = String(dl, "0") & nNameSavePicture Picture1.Image, nPath & "\P-" & nName & ".bmp" '***** P- 表示文件前缀End Sub。
VB中PictureBox控件使用教程PictureBox对象可以说是任何对象的原始型态,它可以加载图片、显示文字、画图外,它还能与Frame对象一样,在自己本身里头加载其它的对象而自成一个小群组,用PictureBox 可以仿真出任何对象的外观,PictureBox是VB基本控件里变化最多,功能最多,也是令人最想去征服它的一个物件。
●PictureBox与Frame对象一样,本身都能装载其它的对象而自己形成一个对象群组。
●如果要拿PictureBox装载对象时,可以把它视为Frame来使用。
●与Image对象一样在设计阶段时,以Picture属性来加载图片。
●与Image对象一样都是在属性对话窗口按一下〝...〞钮后,跳出〝加载图片〞对话框,选择所要的图档,然后加载。
●在执行阶段,可以用VB的函数来帮PictureBox加载图片:Command1_Click()= LoadPicture("E:\MyGif\")End Sub●在设计阶段,若后悔加载图片,想把它消除时,可以把PictureBox按Delete键删掉,然后从工具箱拖曳一个新的PictureBox,或是在属性对话框里的Picture属性,把〝(位图)〞这几个反白,或是移到〝(〞的最前端,按一下键盘的Delete键即可移除图片。
●若在执行阶段,想把PictureBox内的图片移除,可再用LoadPicture函数,并且传空字符串给它:Private Sub Command1_Click()= LoadPicture("")End Sub--------------------------------------------------------------------------------●在PictureBox里画图:●PSet方法:PSet不只是用在PictureBox上,也可以用在窗体上,PSet最主要功用用就是在某一点位置上画一个点,用法是(X,Y), Color:Private Sub Command1_Click() (500,260),RGB(128,0,255)'RGB函数是以红色、绿色、蓝色来表示颜色,详情请到函数指令参考End Sub●若颜色省略,则以PictureBox预设的颜色。
vb中savesettingSaveSetting函数是Visual Basic(VB)程序中的一个非常有用的函数,它用于保存应用程序的设置。
本文将详细介绍SaveSetting 函数的使用方法及其在实际开发中的应用。
一、SaveSetting函数的基本语法SaveSetting函数用于保存应用程序的设置,其基本语法如下:SaveSetting(Section, Key, Setting)参数说明:Section:字符串表达式,用于指定保存设置的区域。
区域由两个关键字构成,以逗号分隔,第一个关键字表示应用程序的名称,第二个关键字表示程序集或者工程的名称。
Key:字符串表达式,用于指定保存设置的键。
键是区域的子项,用于标识不同的设置。
Setting:表达式,用于指定要保存的设置值。
二、SaveSetting函数的使用示例以下示例演示了SaveSetting函数的基本用法。
在该示例中,我们将保存一个名为“myApp”的程序的设置,并指定键为“showWelcome”,设置值为“True”。
保存设置示例代码如下:SaveSetting("myApp", "showWelcome", "True")通过以上示例代码,程序将把"True"保存到名为“showWelcome”的键中。
三、SaveSetting函数的实际应用SaveSetting函数广泛应用于各类VB开发项目中,下面我们将通过两个实际应用场景来展示SaveSetting函数的用法。
1.保存用户首选项设置在很多应用程序中,用户可以通过设置界面来定制一些个性化的功能,比如选择语言、修改界面风格、设置文件路径等。
这些用户首选项设置需要在应用程序重新启动后能够保持不变。
我们可以使用SaveSetting函数来实现这一功能。
比如,在一个字处理软件中,用户可以选择默认字体、默认字号、默认行间距等。
VB调⽤摄像头录像、拍照、保存Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As LongDim ctCapWin As Long, ctAviPath As String, ctPicPath As String, ctConnect As Boolean'视频窗⼝控制消息常数Const WS_Child = &H40000000: Const WS_Visible = &H10000000Const WS_Caption = &HC00000: Const WS_ThickFrame = &H40000Const WM_User = &H400 '⽤户消息开始号Const WM_CAP_Connect = WM_User + 10 '连接⼀个摄像头Const WM_CAP_DisConnect = WM_User + 11 '断开⼀个摄像头的连接Const WM_CAP_Set_PreView = WM_User + 50 '使预览模式有效或者失效Const WM_CAP_Set_Overlay = WM_User + 51 '使窗⼝处于叠加模式,也会⾃动地使预览模式失效。
VB开简易的画图板功能:VB开简易的画图板,使其具有画图板的各块功能VB 界面如下:图二Option ExplicitDim i, drawact As IntegerDim canline, canpen, canrubber, canenlarge, canellipse, canrectangle, canflood, canget, canbrush As Boolean Dim x0, y0, xnow, ynow, radius0, radius As Single Dim Filename As StringPrivate Sub Form_Load()' 初始化图片框的大小和AutoRedraw属性和窗体的标题Picture3.Width = Picture1.WidthPicture3.Height = Picture1.HeightPicture1.AutoRedraw = TruePicture3.AutoRedraw = TruePicture1.Picture = LoadPicture()Filename = "Untitled"Form1.Caption = FilenameEnd SubPrivate Sub Label2_Click(Index As Integer)' 选择某项操作时,将其下凹看上去像是被按下去的 For i = 0 To Label2.Count - 1Label2(i).BorderStyle = 0NextLabel2(Index).BorderStyle = 1drawact = IndexEnd SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)' 当鼠标按下时,对于选择不同的工具执行不同的操作 Select Case drawact' 橡皮Case 0canrubber = TruePicture1.CurrentX = X: Picture1.CurrentY = YPicture1.DrawMode = 13Picture1.DrawWidth = 7' 直线Case 1canline = Truex0 = X: y0 = Yxnow = X: ynow = YPicture1.DrawMode = 7Picture1.DrawWidth = 1' 矩形Case 2canrectangle = Truex0 = X: y0 = Yxnow = X: ynow = YPicture1.DrawMode = 7Picture1.DrawWidth = 2' 椭圆Case 3canellipse = Truex0 = X: y0 = Yxnow = X: ynow = YPicture1.DrawMode = 7Picture1.DrawWidth = 1' 铅笔Case 4canpen = TruePicture1.CurrentX = X: Picture1.CurrentY = YPicture1.DrawMode = 13' 刷子Case 5canbrush = TruePicture1.CurrentX = X: Picture1.CurrentY = YPicture1.DrawMode = 13Picture1.DrawWidth = 5' 油漆桶Case 6Picture1.BackColor = Label1.BackColor' 放大镜Case 7canenlarge = Truex0 = X: y0 = Yxnow = X: ynow = YPicture1.DrawMode = 7Picture1.DrawWidth = 1End SelectEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)' 在标签中显示当前鼠标在画板中的位置Label3.Caption = "X: " + CStr(X) + Chr(13) + Chr(10) + "Y: " + CStr(Y)' 当鼠标移动时,对于选择不同的工具执行不同的操作 Select Case drawact' 橡皮Case 0If canrubber ThenPicture1.Line -(X, Y), vbWhiteEnd If' 直线Case 1If canline ThenPicture1.Line (x0, y0)-(xnow, ynow), Not (Picture1.ForeColor)Picture1.Line (x0, y0)-(X, Y), Not (Picture1.ForeColor)xnow = X: ynow = YEnd If' 矩形Case 2If canrectangle ThenPicture1.Line (x0, y0)-(xnow, ynow), Not (Picture1.ForeColor), BPicture1.Line (x0, y0)-(X, Y), Not (Picture1.ForeColor), Bxnow = X: ynow = YEnd If' 椭圆Case 3radius0 = Sqr((xnow - x0) ^ 2 + (ynow - y0) ^ 2)radius = Sqr((X - x0) ^ 2 + (Y - y0) ^ 2)If canellipse ThenPicture1.Circle (x0, y0), radius0, Not (Picture1.ForeColor)Picture1.Circle (x0, y0), radius, Not (Picture1.ForeColor)xnow = X: ynow = YEnd If' 铅笔Case 4If canpen ThenPicture1.Line -(X, Y), Picture1.ForeColorEnd If' 刷子Case 5If canbrush ThenPicture1.Line -(X, Y), Picture1.ForeColorEnd If' 油漆桶Case 6' do nothing' 放大镜Case 7If canenlarge ThenPicture1.Line (x0, y0)-(xnow, ynow), Not (Picture1.ForeColor), BPicture1.Line (x0, y0)-(X, Y), Not (Picture1.ForeColor), Bxnow = X: ynow = YEnd IfEnd SelectEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)' 当鼠标放开时,对于选择不同的工具执行不同的操作 Select Case drawactCase 1canline = FalsePicture1.Line (x0, y0)-(xnow, ynow)Picture1.DrawMode = 13Picture1.Line (x0, y0)-(xnow, ynow), Picture1.ForeColorCase 2canrectangle = FalsePicture1.Line (x0, y0)-(xnow, ynow), Not (Picture1.ForeColor), BPicture1.DrawMode = 13Picture1.Line (x0, y0)-(xnow, ynow), Picture1.ForeColor, BCase 3canellipse = FalsePicture1.Circle (x0, y0), radius, Not (Picture1.ForeColor)Picture1.DrawMode = 13Picture1.Circle (x0, y0), radius, Picture1.ForeColorCase 4canpen = FalseCase 5canbrush = FalseCase 7canenlarge = FalsePicture1.Line (x0, y0)-(xnow, ynow), Not (Picture1.ForeColor), BIf (xnow - x0) * (ynow - y0) <> 0 ThenPicture3.PaintPicture Picture1.Image, 0, 0, Picture3.Width, Picture3.Height, x0, y0, (xnow - x0), (ynow - y0)Picture1.PaintPicture Picture3.Image, 0, 0End IfEnd SelectEnd SubPrivate Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)' 通过point方法拾取颜色,并设定为前景色Picture1.ForeColor = Picture2.Point(X, Y)Label1.BackColor = Picture2.Point(X, Y)End SubPrivate Sub MNew_Click(Index As Integer)' 新建一个图画Picture1.Picture = LoadPicture()Filename = "Untitled"Form1.Caption = FilenameEnd SubPrivate Sub MSave_Click()' 设置过滤器CommonDialog1.Filter = "bmp文件|*.bmp|所有文件|*.*"' 设置缺省过滤器CommonDialog1.FilterIndex = 2If Filename = "Untitled" Then'如果文件尚未命名,则显示保存对话框CommonDialog1.ShowSaveFilename = CommonDialog1.FilenameIf Filename <> "" ThenSavePicture Picture1.Image, FilenameEnd IfElse'否则直接保存SavePicture Picture1.Image, FilenameEnd IfForm1.Caption = FilenameEnd SubPrivate Sub MExit_Click(Index As Integer)' 退出程序EndEnd Sub1.电脑上必须要先Microsoft Visual Studio(也就是VB软件)2.用VB软件设置窗口如上(图二)3.各个Command对应的VB代码如下:运行VB时,需要先打开SolidWorks一个新零件窗口,然后运行VB,点击界面按钮即可运行结果:完美实现对应功能。
在VB(Visual Basic)中,`SavePicture`函数用于将图片保存到文件中。
它的语法如下:
```vb
SavePicture PictureName, Filename, FileFormat
```
参数说明:
* `PictureName`:要保存的图片的名称或引用。
* `Filename`:要保存图片的文件名和路径。
* `FileFormat`:指定文件格式。
可以是一个常数或一个注册的格式名。
下面是一个示例,演示如何使用`SavePicture`函数将图片保存到文件中:
```
Dim myPicture As Picture
Set myPicture = Form1.PictureBox1.Picture ' 获取图片对象
' 保存图片到文件
SavePicture myPicture, "C:\Users\Username\Pictures\MyPicture.jpg", vbJPEG
```
在上面的示例中,`Form1.PictureBox1.Picture`获取了名为`PictureBox1`的控件中的图片对象。
然后,`SavePicture`函数将该图片保存为JPEG格式,并将其命名为`MyPicture.jpg`,保存在指定的文件路径中。
请注意,`SavePicture`函数只能保存位图(Bitmap)格式的图片。
如果需要保存其他格式的图片,可以使用相应的图像处理库或API来转换格式后再保存。