如何在 vb.net 中保存对原始图像的更改?

Posted

技术标签:

【中文标题】如何在 vb.net 中保存对原始图像的更改?【英文标题】:How to save changes to my orginal image in vb.net? 【发布时间】:2017-06-27 02:02:53 【问题描述】:

我正在使用此代码保存图像

 PictureBox1.Image.Save(filePath)

之后我裁剪图像,我想通过用新裁剪的替换旧的来再次保存它

请帮忙

问候,,,

【问题讨论】:

如何加载图片? 如果您使用Image.FromFile(),您应该阅读以下内容:***.com/questions/18250848/… 【参考方案1】:

当您将图像加载到 PictureBox 而不是您当前使用的图像时,请使用以下代码,稍后保存就可以了。 using 语句确保在加载图像后释放文件。 将 filePath 替换为您自己的。

Using stream as new FileStream(filePath, FileMode.Open, FileAccess.Read)
    PictureBox1.Image = Image.FromStream(stream)
End Using

编辑

从您的上一条评论中我可以看到此代码

Try 
    Me.Opacity = 0% 
    Me.PictureBox1.Image = cc() 
    PictureBox1.Image.Save(filePath) 
    source = Image.FromFile(filePath) 
    PictureBox1.Image = source 
    TextBox1.Text = filePath 
    Me.Opacity = 100% 
Catch ex As Exception 
    MsgBox(ex.Message) 
End Try 

保存后无需将图像重新加载到 PictureBox。只需去掉以下几行。

source = Image.FromFile(filePath) 
PictureBox1.Image = source 

至少现在应该可以解决您的问题,因为您不会将图像保存到您从中加载它的同一图像中(您实际上并没有加载它)。但是你以后必须为你的整个算法找到一个更好的解决方案:)

【讨论】:

我试过这样做,但我遇到了这个错误“进程无法访问文件 'C:\Users\TOSHIBA\Desktop\image20170627083237.png' 因为它正被另一个进程使用." 好的,这是我正在使用的代码,我应该把你的代码放在哪里 Try Me.Opacity = 0% Me.PictureBox1.Image = cc() PictureBox1.Image.Save(filePath) source = Image.FromFile(filePath) PictureBox1.Image = source TextBox1.Text = filePath Me.Opacity = 100% Catch ex As Exception MsgBox(ex.Message) End Try 你的 cc() 函数是做什么的? 私有函数 cc() As Bitmap Dim s As Screen = Screen.PrimaryScreen Dim img As New Bitmap(s.Bounds.Width, s.Bounds.Height) Dim gr As Graphics = Graphics.FromImage( img) gr.CopyFromScreen(s.Bounds.Location, Point.Empty, s.Bounds.Size) 返回 img 结束函数 helooooooooooooooo【参考方案2】:

这就是答案

Dim bmp1 As New Bitmap(PictureBox1.Image)
        If System.IO.File.Exists(filePath) Then
            System.IO.File.Delete(filePath)
        End If

        bmp1.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg)
        ' Dispose of the image files.
        bmp1.Dispose()

【讨论】:

以上是关于如何在 vb.net 中保存对原始图像的更改?的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET如何更改保存程序的文件夹名?

如何使用 VB.NET 将 Excel 工作簿保存到一般路径中

如何将图像从一个图片框传输到另一个图片框? VB.NET 和 SQL

如何使用 vb.net 和 SQL Server 裁剪和调整图像大小

图片按钮 Onclientclick 问题 vb.net

如何使用 c# interop 保存对原始 excel 文件的更改?