Загрузка PictureBox Изображение из файла ресурсов с помощью пути (часть 3) - программирование
Подтвердить что ты не робот

Загрузка PictureBox Изображение из файла ресурсов с помощью пути (часть 3)

Я понимаю, что этот вопрос задавался (и отвечался) раньше. Однако ни одно из решений не работает для меня.

Ниже приведен скриншот всех соответствующих частей головоломки:

Снимок экрана http://dinosaur-island.com/PlantPictureBoxScreenCap.jpg

Как вы можете видеть, существует множество растровых изображений, загруженных в виде ресурсов в папку "Изображения". Есть форма с картинкой под названием "PlantPicture". Есть строка, которая, как я знаю, имеет хороший путь (потому что я проверил ее в отладчике):

            PicPath = PicPath+".bmp";

Снимок экрана http://dinosaur-island.com/PlantDebugger.jpg

Я перепробовал множество способов загрузки, кастинга и т.д. И т.д.

4b9b3361

Ответ 1

Путь должен быть примерно таким: "Images\a.bmp". (Обратите внимание на отсутствие ведущей косой черты, а черты - назад.

И затем:

pictureBox1.Image = Image.FromFile(@"Images\a.bmp");

Я просто попытался убедиться, и это работает. Это, кроме того, другой ответ, который вы получили - "всегда копировать".

Ответ 2

Хорошо... поэтому сначала вам нужно импортировать в проект изображение

1) Выберите окно изображения в Design Design

2) Откройте PictureBox Tasks (это маленькая стрелка, изображенная справа на краю на кадре)

3) Нажмите "Выбрать изображение..."

4) Выберите второй вариант "Файл ресурсов проекта:" (этот параметр создаст папку "Ресурсы", доступ к которой вы можете получить с помощью свойств. Ресурсы)

5) Нажмите "Импорт" и выберите изображение с вашего компьютера (теперь копия изображения с тем же именем, что и изображение, будет отправлена ​​в папке "Ресурсы", созданной на шаге 4)

6) Нажмите ОК

Теперь изображение находится в вашем проекте, и вы можете использовать его с помощью команды "Свойства". Просто введите этот код, если вы хотите изменить изображение из окна изображения:

pictureBox1.Image = Properties.Resources.myimage;

Примечание. myimage представляет имя изображения... после ввода точки после ресурсов, в ваших настройках это будет ваш импортированный файл изображения

Ответ 3

Это зависит от вашего пути к файлу. Для меня текущий каталог был [project]\bin\Debug, поэтому мне пришлось дважды перемещаться в родительскую папку.

Image image = Image.FromFile(@"..\..\Pictures\"+text+".png");
this.pictureBox1.Image = image;

Чтобы найти ваш текущий каталог, вы можете сделать фиктивный ярлык label2 и записать это:

this.label2.Text = System.IO.Directory.GetCurrentDirectory();

Ответ 4

Настройка "Скопировать в каталог вывода" на "Копировать всегда" или "Копировать, если новая" может вам помочь.

Ваш PicPath - это относительный путь, который в какое-то время преобразуется в абсолютный путь при загрузке изображения. Скорее всего, вы увидите, что в указанном месте нет изображений, если вы используете Path.GetFullPath(PicPath) в Debug.

Ответ 5

Принятый ответ имеет серьезный недостаток!
Если вы загрузили изображение таким образом, ваш PictureBox будет заблокировать изображение, поэтому, если вы попытаетесь выполнить какие-либо будущие операции над этим изображением, вы получите сообщение об ошибке , используемое в другом приложении!
Это статья показывает решение в VB

и это реализация С#

 FileStream fs = new System.IO.FileStream(@"Images\a.bmp", FileMode.Open, FileAccess.Read);
  pictureBox1.Image = Image.FromStream(fs);
  fs.Close();