Member 13910887 Ответов: 1

Изменить размер большого изображения с помощью диалогового окна openfiledialog ввода в элемент управления PictureBox


Здравствуйте, ребята, не могли бы вы помочь, как изменить размер большого изображения, чтобы поставить на picturebox1 так, чтобы если изображение уже было изменено, его легко вставить в базу данных

Что я уже пробовал:

Dim OFD As New OpenFileDialog

      OFD.Filter = "Jpeg Images *.jpg|*.jpg|Bitmap Images *.bmp|*.bmp|PNG Images *.PNG|*.PNG"

      If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then

          PictureBox1.Image = Image.FromFile(OFD.FileName)

          Dim Newpic As New Bitmap(PictureBox1.Width, PictureBox1.Height)

          Dim g As Graphics = Graphics.FromImage(Newpic)

          g.DrawImage(PictureBox1.Image, 0, 0, PictureBox1.Width, PictureBox1.Height)



      End If

1 Ответов

Рейтинг:
2

Member 13910887

это моя функция сохранения

Private Sub SAVECATEGORY_Click(sender As Object, e As EventArgs) Handles SAVECATEGORY.Click

      Dim arrImage() As Byte

      Dim mstream As New System.IO.MemoryStream()
      Dim FileSize As UInt32
      FileSize = mstream.Length
      'CLOSES THE CURRENT STREAM AND RELEASE ANY RESOURCES ASSOCIATED WITH THE CURRENT STREAM

      '  Dim ms As New MemoryStream  '...........need to Imports System.IO from general

      ' PictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
      ' PictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif)
      PictureBox1.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Png) ' ........save IMAGE
      'RETURNS THE ARRAY OF UNSIGNED BYTES FROM WHICH THIS STREAM WAS CREATED
      arrImage = mstream.GetBuffer()
      mstream.Close()

      If PictureBox1.Image Is Nothing Then
          MessageBox.Show("Please Insert image ")
          addcategoryclear()           'you call ddcategoryclear()  to clear textbox and picturebox
      ElseIf TextBox1.Text = "" Then
          MessageBox.Show("Please Insert Image Name")
          addcategoryclear()           'you call ddcategoryclear()  to clear textbox and picturebox
      Else
          '..............
          '..............
          cn.Open()
          Dim command As New MySqlCommand("INSERT INTO `category`( `IMG`, `NAME`) VALUES (@IMG,@NAME)", cn)

          With command.Parameters
              .AddWithValue("@IMG", arrImage)
              '  .Add("@IMG", MySqlDbType.Blob).Value = mstream.ToArray()
              .AddWithValue("NAME", TextBox1.Text)
          End With

          If command.ExecuteNonQuery() = 1 Then

              MessageBox.Show("You Successfully Save")

              addcategoryclear() 'you call ddcategoryclear()  to clear textbox and picturebox
              loadcategory()
          Else
              MessageBox.Show("Something Wrong Pleas Try again")
          End If
          cn.Close()
      End If
      Me.Refresh()
  End Sub


Richard Deeming

Это должно быть ответом на твой вопрос?

Member 13910887

нет! .. ... когда я пытаюсь открыть диалоговое окно файла и поместить изображение в picturebox1 и сохранить его, его сохранить в базе данных это потому,что изображения 15kb,38kb,98,kb, 233, но когда он пытается сохранить изображение, которое 250kb вверх или 570kb он не сохраняет отправить мне ошибку(MySql.Data.MySqlClient.MySqlException: "пакеты размером больше max_allowed_packet не допускаются"), я не знаю, что с этим делать. вы можете мне помочь Спасибо