我收到了这个奇怪的错误 -
“参数无效”
处理图片时。我创造了许多很多图像 - 一次拍摄多达50张。我不清楚这个错误是什么。记忆?在完成计算后我处理了位图。任何见解都会有所帮助。感谢。
Private Async Function TakePhoto(ByVal keyword As String) As task
Await Task.Delay(WaitMs)
'System.Threading.Thread.Sleep(WaitMs)
Try
My.Computer.Audio.Play(Directory.GetCurrentDirectory + "\" + "iphone_camera.wav")
Dim pic = New Bitmap(WebKitBrowser1.Width, WebKitBrowser1.Height)
WebKitBrowser1.DrawToBitmap(pic, New Rectangle(0, 0, pic.Width, pic.Height))
Dim fileName = Directory.GetCurrentDirectory + "\" + "test_ss.bmp"
Dim CropRect As New Rectangle(240, 190, 1000, 2800)
Dim OriginalImage1 = Image.FromFile(fileName)
Dim CropImage1 = New Bitmap(CropRect.Width, CropRect.Height)
Using grp = Graphics.FromImage(CropImage1)
grp.DrawImage(OriginalImage1, New Rectangle(0, 0, CropRect.Width, CropRect.Height), CropRect, GraphicsUnit.Pixel)
OriginalImage1.Dispose()
CropImage1.Save(fileName)
CropImage1.Dispose()
End Using
fileName = Directory.GetCurrentDirectory + "\" + "test_ss.bmp"
CropRect = New Rectangle(0, 0, 1000, 1400)
Dim OriginalImage2 = Image.FromFile(fileName)
Dim CropImage2 = New Bitmap(CropRect.Width, CropRect.Height)
Using grp = Graphics.FromImage(CropImage2)
grp.DrawImage(OriginalImage2, New Rectangle(0, 0, CropRect.Width, CropRect.Height), CropRect, GraphicsUnit.Pixel)
OriginalImage2.Dispose()
'CropImage2.Save(Directory.GetCurrentDirectory + "\" + keyword + "_" + "test_ss_top.bmp")
CropImage2.Save(Directory.GetCurrentDirectory + "\" + "test_ss_top.bmp")
CropImage2.Dispose()
End Using
fileName = Directory.GetCurrentDirectory + "\" + "test_ss.bmp"
CropRect = New Rectangle(0, 1401, 1000, 1330)
Dim OriginalImage3 = Image.FromFile(fileName)
Dim CropImage3 = New Bitmap(CropRect.Width, CropRect.Height)
Using grp = Graphics.FromImage(CropImage3)
grp.DrawImage(OriginalImage3, New Rectangle(0, 0, CropRect.Width, CropRect.Height), CropRect, GraphicsUnit.Pixel)
OriginalImage3.Dispose()
'CropImage3.Save(Directory.GetCurrentDirectory + "\" + keyword + "_" + "test_ss_bottom.bmp")
CropImage3.Save(Directory.GetCurrentDirectory + "\" + "test_ss_bottom.bmp")
CropImage3.Dispose()
End Using
Catch ex As Exception
Dim err = ex.Message
End Try
End Function
答案 0 :(得分:1)
这一切都源于您处理一次性物品的顺序。当他们仍在使用时,您手动处理。尝试将Using
中的一次性包装在声明时包装,当它超出范围时将以正确的顺序处理。
例如
Dim fileName = Directory.GetCurrentDirectory + "\" + "test_ss.bmp"
Dim CropRect As New Rectangle(240, 190, 1000, 2800)
Using OriginalImage1 = Image.FromFile(fileName)
Using CropImage1 = New Bitmap(CropRect.Width, CropRect.Height)
Using grp = Graphics.FromImage(CropImage1)
grp.DrawImage(OriginalImage1, New Rectangle(0, 0, CropRect.Width, CropRect.Height), CropRect, GraphicsUnit.Pixel)
CropImage1.Save(fileName)
End Using
End Using
End Using
答案 1 :(得分:0)
Sub image()
If connection.State = ConnectionState.Closed Then
connection.Open()
End If
Dim arrImage() As Byte
Dim strImage As String
Dim myMs As New IO.MemoryStream
'
If Not IsNothing(Form2.picPhoto.Image) Then
Form2.picPhoto.Image.Save(myMs, Form2.picPhoto.Image.RawFormat)
arrImage = myMs.GetBuffer
strImage = "?"
Else
arrImage = Nothing
strImage = "NULL"
End If
Dim dt As New DataTable
Dim da As OleDbDataAdapter = New OleDbDataAdapter(" SELECT * FROM fruits WHERE Name_Of_Fruit = '" & ComboBox1.SelectedValue & "'", connection)
da.Fill(dt)
If dt.Rows.Count > 0 Then
If Not IsDBNull(dt.Rows(0).Item("Picture")) Then
arrImage = CType(dt.Rows(0).Item("Picture"), Byte())
For Each ar As Byte In arrImage
myMs.WriteByte(ar)
Next
Form2.picPhoto.Image = System.Drawing.Image.FromStream(myMs)
End If
Else
MessageBox.Show("Record Not Found", "")
End If
End Sub
结束Classstrong text