Как вставить картинку в picturebox visual basic
Перейти к содержимому

Как вставить картинку в picturebox visual basic

  • автор:

Как вставить картинку в picturebox visual basic

PictureBox предназначен для показа изображений. Он позволяет отобразить файлы в формате bmp, jpg, gif, а также метафайлы ищображений и иконки. Для установки изображения в PictureBox можно использовать ряд свойств:

  • Image : устанавливает объект типа Image
  • ImageLocation : устанавливает путь к изображению на диске или в интернете
  • InitialImage : некоторое начальное изображение, которое будет отображаться во время загрузки главного изображения, которое хранится в свойстве Image
  • ErrorImage : изображение, которое отображается, если основное изображение не удалось загрузить в PictureBox

Чтобы установить изображение в Visual Studio, надо в панели Свойств PictureBox выбрать свойство Image. В этом случае нам откроется окно импорта изображения в проект, где мы собственно и сможем выбрать нужное изображение на компьютере и установить его для PictureBox:

Установка изображения для PictureBox

И затем мы сможем увидеть данное изображение в PictureBox:

Элемент PictureBox в Windows Forms

Либо можно загрузить изображение в коде:

pictureBox1.Image = Image.FromFile("C:\Users\Eugene\Pictures\12.jpg");

Размер изображения

Для установки изображения в PictureBox используется свойство SizeMode , которое принимает следующие значения:

Размер изображений в Windows Forms

  • Normal : изображение позиционируется в левом верхнем углу PictureBox, и размер изображения не изменяется. Если PictureBox больше размеров изображения, то по справа и снизу появляются пустоты, если меньше — то изображение обрезается
  • StretchImage : изображение растягивается или сжимается таким обраом, чобы вместиться по всей ширине и высоте элемента PictureBox
  • AutoSize : элемент PictureBox автоматически растягивается, подстраиваясь под размеры изображения
  • CenterImage : если PictureBox меньше изображения, то изображение обрезается по краям и выводится только его центральная часть. Если же PictureBox больше изображения, то оно позиционируется по центру.
  • Zoom : изоражение подстраивается под размеры PictureBox, сохраняя при этом пропорции

Lesson 7 Working with Picturebox

Picture box is a control in Visual Basic 2017 that is used to display images.In lesson 3, we have already learned how to insert a picture box on the form in Visual Basic 2017. However, we have not learned how to load a picture in the picture box yet. In this lesson, we shall learn how to load an image into the picture box at design time and at runtime. Besides that, we shall also learn how to use a common dialog control to browse for image files in your local drives and then select and load a particular image in the picture box.

7.1 Loading an Image in a Picture Box

7.1.1 Loading an Image at Design Time

First, insert a picture box on the form and change its text property to Picture Viewer, its border property to FixedSingle and its background color to white. You might also want to change the size mode of the image to stretchImage so that the image can fit in the picture box. Now right-click on the picture box to bring out its properties window. In the Properties window, scroll to the Image property, as shown in Figure 7.1

vb2015_fig7.1

Next, click on the grey button on its right to bring out the “Select Source” dialog , as shown in Figure 7.2

vb2015_fig7.2

Now select local source and click on the Import button to bring up the Open dialog and view the available image files in your local drives, as shown in Figure 7.3

vb2015_fig7.3

Finally, select the image you like and then click the open button, the image will be displayed in the picture box, as shown in Figure 7.4

vb2015_fig7.4

7.1.2 Loading an Image at Runtime

In Visual Basic 2017, an image can also be loaded at runtime using the FromFile method of the Image control, as shown in the following example.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

PictureBox1.Image = Image.FromFile(“C:\Users\Toshiba\Pictures\sporetrip2014\fish.jpg”)

End Sub

* You need to search for an image on your local drive and determine its path before you write the code. Running the program will display the same image in the picture box as in Figure 7.4

7.2 Loading an Image in a Picture Box using Open File Dialog Control

We have learned how to load an image from a local drive into a picture box at design time. Now we shall write code so that the user can browse for the image files in his or her local drives then select a particular image and display it on the picture box at runtime.

First, we add a button and change its text to View and its name to BtnView. Next, we add the OpenFileDialog control on the form. This control will be invisible during runtime but it facilitates the process of launching a dialog box and let the user browse his or her local drives and then select and open a file. In order for the OpenFileDialog to display all types of image files, we need to specify the types of image files under the Filter property. Before that, rename OpenFileDialog1 as OFGSelectImage. Next, right-click on the OpenFileDialog control to access its properties window. Beside the Filter property, specify the image files using the format:

JPEG Files| *.JPG|GIF Files|*.GIF|WIndows Bitmaps|*.BMP

as shown in Figure 7.5. These are the common image file formats. Besides that, you also need to delete the default Filename.

Next, double-click on the View button and enter the following code:

Private Sub BtnView_Click(sender As Object, e As EventArgs) Handles Button1.Click If OFGSelectImage.ShowDialog = DialogResult.OK Then PictureBox1.Image = Image.FromFile(OFGSelectImage.FileName) End If End Sub

vb2015_fig7.3

Press F5 to run the program and click the View button, a dialog box showing all the image files will appear, as shown in Figure 7.6

Please notice that that the default image file is JPEG as we have placed it in the first place in the Filter property. Selecting and opening an image file will load it in the picture box, as shown in Figure 7.7

vb2015_fig7.4

Copyright©2008 Dr.Liew Voon Kiong. All rights reserved |Contact|Privacy Policy

Копирование рисунка из базы данных непосредственно в элемент управления PictureBox с помощью Visual C sharp

В этой статье описывается, как скопировать изображение, хранящееся в базе данных, непосредственно в элемент управления PictureBox в Форме Windows Forms, не сохраняя его в файл.

Исходная версия продукта: Visual C #
Исходный номер базы знаний: 317701

Аннотация

В этой пошаговой статье описывается, как скопировать изображение, хранящееся в базе данных, непосредственно в элемент управления PictureBox в Форме Windows Forms без необходимости сохранять изображение в файл.

В этой статье мы будем использовать MemoryStream объект из System.IO базового класса для копирования данных изображения из базы данных непосредственно в элемент управления PictureBox.

Требования

В следующем списке перечислены рекомендуемые оборудование, программное обеспечение, сетевая инфраструктура и пакеты обновления, которые вам понадобятся.

  • Visual Studio .NET, установленный в совместимой операционной системе Windows
  • Доступный экземпляр SQL Server или доступная база данных Access для тестирования

В этой статье предполагается, что вы знакомы со следующими разделами:

  • Приложения visual C# .NET Windows Forms
  • Хранилище больших двоичных объектов (BLOB) в базах данных
  • доступ к данным ADO.NET

Пример

  1. Создайте таблицу SQL Server или Access со следующей структурой:
CREATE TABLE BLOBTest ( BLOBID INT IDENTITY NOT NULL, BLOBData IMAGE NOT NULL ) 
using System.Data.SqlClient; using System.IO; using System.Drawing.Imaging; 
String strCn = "Data Source=localhost;integrated security=sspi;initial catalog=mydata"; 
try < SqlConnection cn = new SqlConnection(strCn); SqlCommand cmd = new SqlCommand("INSERT INTO BLOBTest (BLOBData) VALUES (@BLOBData)", cn); String strBLOBFilePath = @"C:\blue hills.jpg";//Modify this path as needed. //Read jpg into file stream, and from there into Byte array. FileStream fsBLOBFile = new FileStream(strBLOBFilePath,FileMode.Open, FileAccess.Read); Byte[] bytBLOBData = new Byte[fsBLOBFile.Length]; fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length); fsBLOBFile.Close(); //Create parameter for insert command and add to SqlCommand object. SqlParameter prm = new SqlParameter("@BLOBData", SqlDbType.VarBinary, bytBLOBData.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, bytBLOBData); cmd.Parameters.Add(prm); //Open connection, execute query, and close connection. cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); >catch(Exception ex)
try < SqlConnection cn = new SqlConnection(strCn); cn.Open(); //Retrieve BLOB from database into DataSet. SqlCommand cmd = new SqlCommand("SELECT BLOBID, BLOBData FROM BLOBTest ORDER BY BLOBID", cn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds, "BLOBTest"); int c = ds.Tables["BLOBTest"].Rows.Count; if(c>0) < //BLOB is read into Byte array, then used to construct MemoryStream, //then passed to PictureBox. Byte[] byteBLOBData = new Byte[0]; byteBLOBData = (Byte[])(ds.Tables["BLOBTest"].Rows[c - 1]["BLOBData"]); MemoryStream stmBLOBData = new MemoryStream(byteBLOBData); pictureBox1.Image= Image.FromStream(stmBLOBData); >cn.Close(); > catch(Exception ex)
try < SqlConnection cn = new SqlConnection(strCn); SqlCommand cmd = new SqlCommand("INSERT INTO BLOBTest (BLOBData) VALUES (@BLOBData)", cn); //Save image from PictureBox into MemoryStream object. MemoryStream ms = new MemoryStream(); pictureBox1.Image.Save(ms, ImageFormat.Jpeg); //Read from MemoryStream into Byte array. Byte[] bytBLOBData = new Byte[ms.Length]; ms.Position = 0; ms.Read(bytBLOBData, 0, Convert.ToInt32(ms.Length)); //Create parameter for insert statement that contains image. SqlParameter prm = new SqlParameter("@BLOBData", SqlDbType.VarBinary, bytBLOBData.Length, ParameterDirection.Input, false, 0, 0,null, DataRowVersion.Current, bytBLOBData); cmd.Parameters.Add(prm); cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); >catch(Exception ex)

Ловушек

  • Этот тест не будет работать со столбцом Фото в таблице Сотрудники примера базы данных Northwind, распределенной с помощью Access и SQL Server. Растровые изображения, хранящиеся в столбце Фото, упаковываются в оболочку со сведениями заголовка, созданными элементом управления OLE-контейнера Visual Basic 6.0.
  • Если для тестирования этого кода требуется использовать базу данных Access, необходимо создать столбец в таблице Access как тип OLE Object и использовать System.Data.OleDb пространство имен с поставщиком Jet 4.0 вместо System.Data.SqlClient пространства имен.

Обратная связь

Были ли сведения на этой странице полезными?

Учебник. Добавление элементов управления в средство просмотра изображений приложения Windows Forms в Visual Studio

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

В этой серии из трех руководств вы создадите приложение Windows Forms, которое загружает изображение и отображает его. В интегрированной среде разработки Visual Studio имеются средства, необходимые для создания приложения. Подробнее см. в статье Добро пожаловать в интегрированную среду разработки Visual Studio.

В этой программе имеются поле рисунка, флажок и несколько кнопок, которые используются для управления приложением. В этом учебнике показано, как добавить эти элементы управления.

В этом третьем учебнике вы научитесь следующему:

  • Добавление элементов управления в приложение
  • Добавление кнопок на панель макета
  • Изменение имен и расположений элементов управления
  • Добавление компонентов диалоговых окон

Необходимые компоненты

Материал этого учебника построен на знаниях, которые вы получили из предыдущего учебника Создание приложения для просмотра изображений. Если вы еще не выполнили действия из этого учебника, сделайте в первую очередь это.

Добавление элементов управления в приложение

Приложение «Средство просмотра изображений» использует элемент управления PictureBox для вывода изображения. Оно использует флажок и несколько кнопок для управления изображением и фоном, а также для закрытия приложения. Вы добавите элемент PictureBox и флажок из области панели элементов в Visual Studio IDE.

  1. Откройте Visual Studio. Проект средства просмотра изображений находится в разделе Открыть последние.
  2. В конструкторе Windows Forms выберите элемент управления TableLayoutPanel, добавленный в предыдущем учебнике. Убедитесь, что в окне Свойства отображается tableLayoutPanel1.
  3. В левой части интегрированной среды разработки Visual Studio выберите вкладку Панель элементов. Если вы ее не видите, выберите пункт Представление>Панель элементов в строке меню или воспользуйтесь комбинацией клавиш CTRL+ALT+X. На панели элементов разверните узел Общие элементы управления.
  4. Дважды щелкните элемент PictureBox, чтобы добавить в форму элемент управления PictureBox. Visual Studio IDE добавит элемент управления PictureBox в первую пустую ячейку TableLayoutPanel.
  5. Щелкните новый элемент управления PictureBox, чтобы выбрать его, а затем щелкните черный треугольник на новом элементе управления PictureBox, чтобы отобразить его список задач. Screenshot shows the PictureBox Tasks dialog box with Dock in Parent Container highlighted.
  6. Выберите Закрепить в родительском контейнере, который задает для свойства Dock элемента управления PictureBox значение Fill. Это значение отображается в окне Свойства.
  7. В окне Свойства для элемента управления PictureBox задайте для свойства ColumnSpan значение 2. Теперь элемент управления PictureBox заполняет оба столбца.
  8. Установите для его свойства BorderStyle значение Fixed3D.
  9. В конструкторе Windows Forms выберите элемент управления TableLayoutPanel. Затем двойным щелчком выберите элемент CheckBox на панели элементов, чтобы добавить новый элемент управления CheckBox в следующую свободную ячейку таблицы. Элемент управления PictureBox занимает первые две ячейки в TableLayoutPanel, поэтому элемент управления CheckBox добавляется в нижнюю левую ячейку.
  10. Выберите свойство Text и введите Stretch. Screenshot shows checkbox control named Stretch.

Добавление кнопок на панель макета

Мы добавили элементы управления в TableLayoutPanel. Далее показано, как добавить четыре кнопки в новую панель макета в TableLayoutPanel.

Screenshot shows the Picture Viewer form with four buttons.

  1. В форме выберите элемент управления TableLayoutPanel. Откройте Панель элементов, выберите Контейнеры. Дважды щелкните элемент управления FlowLayoutPanel для добавления нового элемента в последнюю ячейку TableLayoutPanel.
  2. Присвойте свойству Dock элемента FlowLayoutPanel значение Fill. Это свойство можно задать, щелкнув черный треугольник и выбрав Закрепить в родительском контейнере. Элемент управления FlowLayoutPanel является контейнером, в котором другие элементы управления размещаются построчно в определенном порядке.
  3. Выберите новый элемент FlowLayoutPanel, а затем откройте Панель элементов и выберите Общие элементы управления. Дважды щелкните элемент Кнопки, чтобы добавить кнопку с именем button1.
  4. Снова дважды щелкните элемент Кнопка, чтобы добавить еще одну кнопку. Интегрированная среда разработки вызывает следующий элемент button2.
  5. Добавьте еще две кнопки таким же образом. Другой вариант — выберите button2, а затем выберите Правка>Копировать или нажмите клавиши CTRL+C. Далее в строке меню выберите Правка>Вставить (или нажмите клавиши CTRL+V). Порядок вставки копии кнопки. Повторите вставку еще раз. Обратите внимание на то, что в интегрированной среде разработки были добавлены кнопки button3 и button4 в FlowLayoutPanel.
  6. Выберите первую кнопку и установите для ее свойства Text значение Показать рисунок.
  7. Установите для свойства Text следующих трех кнопок значения Очистить рисунок, Установить цвет фона и Закрыть.
  8. Чтобы изменить размер кнопок и расположить их, выберите элемент FlowLayoutPanel. Присвойте свойству FlowDirection значение RightToLeft. Кнопки должны сами выровняться по правой стороне ячейки и изменить свой порядок таким образом, чтобы кнопка Показать рисунок располагалась с правой стороны. Можно перетаскивать кнопки в элементе FlowLayoutPanel, чтобы разместить их в любом порядке.
  9. Щелкните кнопку Закрыть, чтобы выбрать ее. Затем выберите остальные кнопки, удерживая нажатой клавишу CTRL.
  10. В окне Свойства задайте для свойства Авторазмер значение True. Размеры кнопок будут изменяться соответствии с текстом.

Вы можете запустить программу, чтобы увидеть, как выглядят элементы управления. Нажмите клавишу F5, выберите Отладка>Начать отладку или нажмите кнопку Запустить. Кнопки, которые вы добавили, пока еще не функционируют.

Переименование элементов управления

В форме есть четыре кнопки: button1, button2, button3и button4 в C#. В Visual Basic в качестве первой буквы любого имени элемента управления по умолчанию используется прописная буква, поэтому в Visual Basic кнопки называются Button1, Button2, Button3 и Button4. Чтобы присвоить им более информативные имена, выполните указанные ниже действия.

Properties window with closeButton name

  1. В форме нажмите кнопку Закрыть . Если все еще выделены все кнопки, для отмены выделения нажмите клавишу ESC.
  2. В окне Свойства найдите (Name). Измените имя на closeButton. Интегрированная среда разработки не принимает имена, содержащие пробелы.
  3. Переименуйте другие три кнопки как backgroundButton, clearButton, showButton. Имена можно проверить в раскрывающемся списке селектора элементов управления в окне Свойства . Отобразятся новые имена кнопок.

Можно переименовать любой элемент управления, например TableLayoutPanel или checkbox.

Добавление компонентов диалоговых окон

С помощью компонентов приложение может открывать графические файлы и выбирать цвет фона. Компонент аналогичен элементу управления. Для добавления компонента в форму используется панель элементов. Для задания значений свойств используется окно Свойства.

В отличие от элемента управления, добавление в форму компонента не добавляет в форму визуальный элемент. Вместо этого, компонент предоставляет определенное поведение, которое можно включать в коде. Например, это компонент, который открывает диалоговое окно Открыть файл.

В этом разделе добавьте в форму компоненты OpenFileDialog и ColorDialog.

Dialog components

  1. Выберите конструктор Windows Forms (Form1.cs[Design]). Затем откройте Панель элементов и выберите группу Диалоговые окна.
  2. Дважды щелкните элемент OpenFileDialog, чтобы добавить в форму компонент с именем openFileDialog1.
  3. Дважды щелкните на панели элементов элемент ColorDialog, чтобы добавить в форму компонент с именем colorDialog1. Компоненты отображаются в нижней части конструктора Windows Forms в виде значков.
  4. Щелкните значок openFileDialog1 и задайте два свойства:
  5. Установите для свойства Filter следующее значение:

JPEG Files (*.jpg)|*.jpg|PNG Files (*.png)|*.png|BMP Files (*.bmp)|*.bmp|All files (*.*)|*.* 

Параметры свойства Filter определяют типы файлов, которые отображаются в диалоговом окне Выбор файла изображения.

Следующие шаги

Перейдите к следующему учебнику, чтобы узнать, как добавить код в приложение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *