重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

vb.net下载图片 vb保存图片

如何在VB中保存图片

VB6.0可使用SavePicture 语句来保存窗体或图像框中经修改的图片。

10年积累的成都网站制作、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有泽库免费网站建设让你可以放心的选择与我们合作。

1)SavePicture 语句,从对象或控件(如果有一个与其相关)的 Picture 或 Image 属性中将图形保存到文件中。

说明:无论在设计时还是运行时图形从文件加载到对象的 Picture

属性,而且它是位图、图标、元文件或增强元文件,则图形将以原始文件同样的格式保存。如果它是 GIF 或 JPEG 文件,则将保存为位图文件。

2)AutoRedraw 属性,返回或设置从图形方法到持久图形的输出。

该属性为True,可使 Form 对象或 PictureBox

控件的自动重绘有效。图形和文本输出到屏幕,并存储在内存的图象中。该对象不接受绘制事件,必要时,用存储在内存中的图象进行重绘。  

以下代码保存窗体装载并进行文字修饰的图片:

Option Explicit

Private Sub Command1_Click()

SavePicture Image, App.Path  "\TEST"   ' 将图片保存到文件。

End Sub

Private Sub Form_Click()

FontSize = 24

Print " 将图片保存到文件"

End Sub

Private Sub Form_Load()

Me.AutoRedraw = True

End Sub

3)若要保存为JPG图片需要采取使用API函数实现。参考以下步骤和代码:

a.在图片框加载需要添加文字水印的图片。

b.使用如下代码实现添加文字到图片框。

Private Sub CmdEdit_Click() '修改

Dim strTxt As String

strTxt = "风雨无阻 拍摄"

Picture1.FontSize = 18

Picture1.CurrentY = Picture1.ScaleHeight - 30

Picture1.CurrentX = Picture1.ScaleWidth / 2 - Picture1.TextWidth(strTxt) / 2

Picture1.ForeColor = vbWhite

Picture1.FontItalic = True

Picture1.Print strTxt

End Sub

c.将以下API转换图片格式代码放置于标准模块,模块命名为saveApg。

Option Explicit

Public Type GUID

Data1 As Long

Data2 As Integer

Data3 As Integer

Data4(0 To 7) As Byte

End Type

Public Type GdiplusStartupInput

GdiplusVersion As Long

DebugEventCallback As Long

SuppressBackgroundThread As Long

SuppressExternalCodecs As Long

End Type

Public Type EncoderParameter

GUID As GUID

NumberOfValues As Long

type As Long

Value As Long

End Type

Public Type EncoderParameters

Count As Long

Parameter As EncoderParameter

End Type

Public Declare Function GdiplusStartup Lib "GDIPlus" (token As Long, inputbuf As GdiplusStartupInput, ByVal outputbuf As Long) As Long

Public Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long

Public Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hpal As Long, Bitmap As Long) As Long

Public Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long

Public Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal fileName As Long, clsidEncoder As GUID, encoderParams As Any) As Long

Public Declare Function CLSIDFromString Lib "ole32" (ByVal str As Long, id As GUID) As Long

Public Declare Function GdipCreateBitmapFromFile Lib "GDIPlus" (ByVal fileName As Long, Bitmap As Long) As Long

Public Function PictureBoxSaveJPG(ByVal pict As StdPicture, ByVal fileName As String, Optional ByVal quality As Byte = 80) As Boolean

Dim tSI As GdiplusStartupInput

Dim lRes As Long

Dim lGDIP As Long

Dim lBitmap As Long

'初始化 GDI+

tSI.GdiplusVersion = 1

lRes = GdiplusStartup(lGDIP, tSI, 0)

If lRes = 0 Then

'从句柄创建 GDI+ 图像

lRes = GdipCreateBitmapFromHBITMAP(pict.Handle, 0, lBitmap)

If lRes = 0 Then

Dim tJpgEncoder As GUID

Dim tParams As EncoderParameters

'初始化解码器的GUID标识

CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder

'设置解码器参数

tParams.Count = 1

With tParams.Parameter ' Quality

'得到Quality参数的GUID标识

CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .GUID

.NumberOfValues = 1

.type = 4

.Value = VarPtr(quality)

End With

'保存图像

lRes = GdipSaveImageToFile(lBitmap, StrPtr(fileName), tJpgEncoder, tParams)

'销毁GDI+图像

GdipDisposeImage lBitmap

End If

'销毁 GDI+

GdiplusShutdown lGDIP

End If

If lRes Then

PictureBoxSaveJPG = False

Else

PictureBoxSaveJPG = True

End If

End Function

d.使用以下代码实现将加好文字水印图片保存为jpg格式图片。

Private Sub Command3_Click() '保存为.jpg图片

' 设置“CancelError”为 True

CommonDialog1.CancelError = True

On Error GoTo ErrHandler

' 设置标志

CommonDialog1.Flags = cdlOFNHideReadOnly

' 设置过滤器

CommonDialog1.Filter = "JPEG Files"  "(*.jpg)|*.jpg"

' 指定缺省的过滤器

CommonDialog1.FilterIndex = 2

' 显示“打开”对话框

CommonDialog1.ShowSave

' 显示选定文件的名字

'MsgBox CommonDialog1.fileName

Set Picture2.Picture = Picture1.Image '转移Picture1所绘图为Picture2.Picture赋值

Dim ret As Boolean

ret = PictureBoxSaveJPG(Picture2, CommonDialog1.fileName) '保存压缩后的图片

If ret = False Then

MsgBox "保存失败"

End If

Exit Sub

ErrHandler:

' 用户按了“取消”按钮

Exit Sub

End Sub

VB.net如何调用资源文件(resx)里的图片?

放在解决方案资源管理器还没完。进入项目属性,资源,把解决方案资源管理器里的资源文件拖进来,改个便于调用的名称,然后My.Resources里面就可以调用了。如果是VS可以识别的,那么就直接是Bitmap类型的,可以隐式转换成Image类型。

vb.net的图片空间怎样获得相对路径下的图片

在VB 学习中,绝对路径就是指带有盘符的固定的路径,比如“c:\windows\systems\a.exe” 而相对路径则可用APP.PATH连接文件名来表示,比如:App.Path "\a.exe"

以vb学习中加载图片为例,这样就容易弄明白了。假设我们要在vb中加载一幅图片,假设我们把这个加载图片的程序保存在如下位置:"E:\aa-vbnew\加载图片讲解"而我们的图片在"D:\My Files\图画\tong.jpg"

那么情况如下:1,在代码中直接以绝对路径表示加载到form1中,如图所示:

显示结果如下:

2,换一种方式,以相对路径直接加载也可以。程序如图:

结果如上图。

下面分析如下:

第一种方式,我们使用的是图片的完整路径,就称之为绝对路径,也就是说不管我们的这个VB程序放到硬盘的任何位置,都完全可以显示出来这幅图片,因为图片的路径是绝对的,只要不改变图片的路径,那么就是绝对不变的。

第二种方式,我们使用的是图片的相对路径,相对于谁呢?是相对于我们的VB这个应用程序和这幅图片自身位置的。一旦我们的程序位置发生变化或者图片的位置发生改变,那么这个程序都不可以执行,不会显示这幅图片。所以说这就是相对路径,是以一个参考对象而存在的。

vb.net中,如何像下图一样,用很简单的办法,导入1000张图片。

很简单的方法,貌似没有。这个需要自己写很多代码:

用一个ListView控件。

判断滚动条当前所显示的图片集合,获取它们的物理路径。

用Bitmap.FromImage方法把这些图片读出来,

然后获取缩略图,

把缩略图用Graphics.DrawImage()绘制出来。

我可以提供Bitmap如何获取缩略图的方法:

''' summary必须创建一个委托并将对此委托的引用作为获取缩略图 callback 参数传递,但不使用此委托。/summary

Public Function ThumbnailCallback() As Boolean

Return False

End Function

''' summary返回Image,表示图像指定 宽 和 高 的缩略图。/summary

Public Function 获取缩略图(位图 As Bitmap, 宽 As Integer, 高 As Integer) As Image

Dim myCallback As New Image.GetThumbnailImageAbort(ThumbnailCallback)

Return 位图.GetThumbnailImage(宽, 高, myCallback, IntPtr.Zero)

End Function


分享标题:vb.net下载图片 vb保存图片
文章来源:http://cqcxhl.com/article/dohhoph.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP