第一步先用新的文件名来保存图像文件
第二步Dispose释放引用的图片文件
第三步删除旧的图片文件
第四步将新的图像文件 重命名为 旧的图片文件名
这样就可以达到你的目的了
将PictureBox控件里的图片,保存为文件:
①.,文件格式不变化:
PictureBox1.Image.Save("C:\" Format(Now, "HH-mm-ss") ".bmp")
PictureBox1.Image.Save("C:\" Format(Now, "HH-mm-ss") ".bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If PictureBox1.Image Is Nothing Then Exit Sub
PictureBox1.Image.Save("xxx")
End Sub
提供两个思路
用printscreen,将其保存到文件,再调用outlook发出去,但是您说的超出一屏,就麻烦了;
以下代码保存为文件,引用自MSDN,由于我的SD版本不支持我的outlook,所以暂时无法给发送邮件的例子,请参考吧!
system.Windows.Forms.SendKeys.Send("%{PRTSC}")
? ?If Not System.Windows.Forms.Clipboard.GetDataObject() Is Nothing Then
? ? ? ? Dim oDataObj As IDataObject = System.Windows.Forms.Clipboard.GetDataObject()
? ? ? ? If oDataObj.GetDataPresent(System.Windows.Forms.DataFormats.Bitmap) Then
? ? ? ? ? ? Dim oImgObj As System.Drawing.Image = oDataObj.GetData(DataFormats.Bitmap, True)
? ? ? ? ? ? 'To Save as Bitmap
? ? ? ? ? ? oImgObj.Save("F:\Test.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
? ? ? ? ? ? 'To Save as Jpeg
? ? ? ? ? ? oImgObj.Save("D:\Test.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg)
? ? ? ? ? ? 'To Save as Gif
? ? ? ? ? ? oImgObj.Save("d:\Test.gif", System.Drawing.Imaging.ImageFormat.Gif)
? ? ? ? End If
? ? End If
①.)SavePicture 语句,从对象或控件(如果有一个与其相关)的 Picture 或 Image 属性中将图形保存到文件中.
说明:无论在设计时还是运行时图形从文件加载到对象的 Picture
属性,而且它是位图、图标、元文件或增强元文件,则图形将以原始文件同样的格式保存.如果它是 GIF 或 JPEG 文件,则将保存为位图文件.
该属性为True,可使 Form 对象或 PictureBox
控件的自动重绘有效.图形和文本输出到屏幕,并存储在内存的图象中.该对象不接受绘制事件,必要时,用存储在内存中的图象进行重绘. ?
以下代码保存窗体装载并进行文字修饰的图片:
Option?Explicit
Private?Sub?Command1_Click()
SavePicture?Image,?App.Path?"\TEST"?'?将图片保存到文件.
End?Sub
Private?Sub?Form_Click()
Print?"?将图片保存到文件"
Private?Sub?Form_Load()
Me.AutoRedraw?=?True
a.在图片框加载需要添加文字水印的图片.
b.使用如下代码实现添加文字到图片框.
Private?Sub?CmdEdit_Click()?'修改
Dim?strTxt?As?String
strTxt?=?"风雨无阻?拍摄"
Picture1.ForeColor?=?vbWhite
Picture1.FontItalic?=?True
Picture1.Print?strTxt
c.将以下API转换图片格式代码放置于标准模块,模块命名为saveApg.
Public?Type?GUID
Data1?As?Long
End?Type
Public?Type?GdiplusStartupInput
GdiplusVersion?As?Long
DebugEventCallback?As?Long
SuppressBackgroundThread?As?Long
SuppressExternalCodecs?As?Long
Public?Type?EncoderParameter
GUID?As?GUID
NumberOfValues?As?Long
type?As?Long
Value?As?Long
Public?Type?EncoderParameters
Count?As?Long
Parameter?As?EncoderParameter
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?GdipCreateBitmapFromFile?Lib?"GDIPlus"?(ByVal?fileName?As?Long,?Bitmap?As?Long)?As?Long
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)
Dim?tJpgEncoder?As?GUID
Dim?tParams?As?EncoderParameters
'初始化解码器的GUID标识
'设置解码器参数
tParams.Count?=?1
With?tParams.Parameter?'?Quality
'得到Quality参数的GUID标识
.NumberOfValues?=?1
.Value?=?VarPtr(quality)
End?With
'保存图像
lRes?=?GdipSaveImageToFile(lBitmap,?StrPtr(fileName),?tJpgEncoder,?tParams)
'销毁GDI+图像
GdipDisposeImage?lBitmap
End?If
'销毁?GDI+
GdiplusShutdown?lGDIP
If?lRes?Then
PictureBoxSaveJPG?=?False
Else
PictureBoxSaveJPG?=?True
End?Function
d.使用以下代码实现将加好文字水印图片保存为jpg格式图片.
'?设置"CancelError"为?True
CommonDialog1.CancelError?=?True
On?Error?GoTo?ErrHandler
'?设置标志
CommonDialog1.Flags?=?cdlOFNHideReadOnly
'?设置过滤器
CommonDialog1.Filter?=?"JPEG?Files"?"(*.jpg)|*.jpg"
'?指定缺省的过滤器
'?显示"打开"对话框
CommonDialog1.ShowSave
'?显示选定文件的名字
'MsgBox?CommonDialog1.fileName
Dim?ret?As?Boolean
If?ret?=?False?Then
MsgBox?"保存失败"
Exit?Sub
ErrHandler:
'?用户按了"取消"按钮
以上就是土嘎嘎小编为大家整理的vb.net如何存图片相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!