С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95

Отсутствие файла изображения при загрузке

22.06.2016, 14:21. Показов 1494. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть БД. Каждая строка в БД имеет уникальный ID который привязан к названию файла изображения.
Выбирается строка в БД, считывается ID и подгружается соответствующее изображение...

Visual Basic
1
2
Path = "Ris" & Item.SubItems(3) & ".jpg"
Picture1.Picture = LoadPicture(Path)
Вопрос... как сделать так, что бы прога не вылетала при отсутствии изображения...
подгружалось например какая то альтернативное изображение или вообще ничего не грузилось
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.06.2016, 14:21
Ответы с готовыми решениями:

Как при загрузке иконки из файла ресурсов указать какой именно размер надо загрузить?
У файле ресурсов есть иконка из тремя изображениями (16*16, 32*32, 48*48). Как при загрузке иконки из файла ресурсов указать какой именно...

Загрузить изображение при помощи функции LoadPicture с указанием файла изображения
Исправте, что не правильно, пожалуйста. Задание изображений. В режиме проектирования для задания изображений используется свойство...

Отсутствие сигналов и изображения на мониторе при запуске
Почистить комп решил я вот, Видеокарточку извлёк. И память. Продул всё, тряпочкой протёр сухой (Баллоны с воздухом? - конечно, знаю, ...

13
Заблокирован
22.06.2016, 16:29
Лучший ответ Сообщение было отмечено paau как решение

Решение

Visual Basic
1
2
3
Path = "Ris" & Item.SubItems(3) & ".jpg"
IF DIR(PATH)="" THEN PATH="какая то альтернативное изображение.BMP"
Picture1.Picture = LoadPicture(Path)
1
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
22.06.2016, 16:45  [ТС]
Shersh, спасибо большое ))) ...все работает как надо...
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
22.06.2016, 17:22
Лучше делать через обработчик ошибок On Error ...
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
22.06.2016, 19:15  [ТС]
The trick, On Error Resume Next мне не подходит, потому как юзеру надо видеть что нужный файл
с изображением отсутствует, а данный обработчик ошибок просто пропустит ошибку, оставив предыдущее изображение.
Но все равно спасибо за ответ... :)
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
22.06.2016, 23:09
Цитата Сообщение от paau Посмотреть сообщение
The trick, On Error Resume Next мне не подходит, потому как юзеру надо видеть что нужный файл
с изображением отсутствует, а данный обработчик ошибок просто пропустит ошибку, оставив предыдущее изображение.
Но все равно спасибо за ответ...
Нет. Там может быть любой файл с таким именем, а не только изображение и ты все равно получишь ошибку. Вот что я имел в виду:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Sub Form_Load()
    Dim pic         As StdPicture
    Dim fileName    As Variant
 
    On Error GoTo error_handler
    
    For Each fileName In Array( _
                "Dawn on Europa.jpg", _
                "0_11b167_7a8aedcb_orig.png", _
                "icoCopy.ico", _
                "Project006.gif", _
                "3dSound367.png")
 
        Set pic = LoadPicture(fileName)
    
    Next
    
    Exit Sub
    
error_handler:
    Dim msg As String
    
    Select Case Err.Number
    Case 53:    msg = "Файл '" & fileName & "' не найден."
    Case 481:   msg = "Файл '" & fileName & "' поврежден или имеет неопознанный формат."
    Case Else:  msg = Err.Description
    End Select
 
    If MsgBox(msg, vbRetryCancel, "Ошибка") = vbRetry Then
        Resume
    Else
        Resume Next
    End If
    
End Sub
1
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
23.06.2016, 14:50  [ТС]
The trick, ну это уже высший пилотаж... мне до него еще далековато ))))))

Добавлено через 17 минут
Сделал по другому...
ссылку и имя файла загружаемой картинки считываю через CommonDialog1.FileName и заношу в БД,
оттуда уже по ссылке грузиться нужное изображение.
Все работает гуд... за исключением ситуевины, когда нет изображения... )))))
Дело в том что ошибку никакую не выдает, просто на Picture серый фон... и
IF DIR(PATH)="" THEN PATH="какая то альтернативное изображение.BMP" - не работает О_О

Visual Basic
1
2
3
Path = Item.SubItems(4)    ' это работает
If Dir(Path) = "" Then Path = App.Path & "\images\Ris0.jpg"  ' это не работает
Picture1.Picture = LoadPicture(Path)  ' это работает
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
23.06.2016, 15:11
The trick, надо было ему сбросить килобайт WinApi, а потом неторопливо рассказывать зачем они там ))
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
25.06.2016, 22:31  [ТС]
Ребята, кто сталкивался с такой шляпой... ???
в Picture фото с параметрами:
3168х4752 пикселей, размер 7.09 Мб формат .jpg (фотография) грузиться без проблем,
а файл изображения:
1189x1190 пикселей, размер 205 КБ формат .jpg (рисунок Corel, сохраненный в jpg формате) не грузиться.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
26.06.2016, 06:29
Цитата Сообщение от paau Посмотреть сообщение
1189x1190 пикселей, размер 205 КБ формат .jpg (рисунок Corel, сохраненный в jpg формате) не грузиться.
Прикрепите к сообщению пример такого изображения, которое не грузится. Надо проанализировать параметры.
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
26.06.2016, 08:06  [ТС]
Pro_grammer, проанализировал параметры... Оказывается глубина цвета в не загружаемых файлах равняется 32, а там где глубина цвета 24 - с загрузкой все нормально. Сейчас погуглю этот параметр.
Прикрепляю 2 одинаковых файла с разной глубиной цвета. Один грузиться, другой нет.
Миниатюры
Отсутствие файла изображения при загрузке   Отсутствие файла изображения при загрузке  
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
26.06.2016, 08:17  [ТС]
Похоже что с изображениями в 32 бита VB не работает. Жаль...
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
26.06.2016, 14:41
Цитата Сообщение от paau Посмотреть сообщение
Похоже что с изображениями в 32 бита VB не работает.
Ну вот и раскрылась тайна
Не вижу особой причины волноваться по этому поводу, особенно для JPG.
32 бита PNG нужно для прозрачности.
JPG прозрачность не поддерживает, 24 бит вполне достаточно. Кстати форум все изображения перевел в 24 б.
1
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
26.06.2016, 14:59  [ТС]
Pro_grammer, прикреплю архивом для теста...
Волнения в том, что юзер может попытаться прикрепить .jpg формат фото
не задумываясь о параметрах глубины цвета и получить болт ))))
Хотя может быть я и не прав и все фото имеют глубину цвета 24 бит...
Изображения в программе будут использоваться исключительно фотографического характера.
Вложения
Тип файла: 7z ЕС.7z (273.1 Кб, 6 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2016, 14:59
Помогаю со студенческими работами здесь

Ошибка при загрузке изображения
Здравствуйте! Пытаюсь нарисовать изображение: try { BufferedImage img = ImageIO.read(new File("logotip.jpg"));...

Ошибка при загрузке изображения
Вот код моего окна: class menuWindow: def __init__(self): self.windowWidth = 1288 self.windowHeight = 720 ...

Ошибка при загрузке изображения
Здравствуйте! Написал html <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML1.1//EN" ...

Ошибка при загрузке изображения
чЕТ Я НЕ ДОГОНЯЮ ПОЧЕМУ ОШИБКА уБИЛ УЖЕ КУЧА ВРЕМЕНИ -ГОЛОВА ПОХОЖА НА КУБ))) Exception in Tkinter callback Traceback (most recent...

DirectoryNotFoundException при загрузке изображения
Уважаемые форумчане, что не так в этом коде, подскажите пожалуйста. private void button1_Click(object sender, RoutedEventArgs e) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru