Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
1

Загрузить изображение из Интернета, вывести в PictureBox и удалить

04.05.2013, 22:18. Показов 3236. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа должна со страницы поиска Яндекс.Картинки загрузить самое первое изображение в результате поиска на компьютер, вывести в PictureBox и удалить его с диска пользователя. Если пользователю изображение не нравится, то он нажимает на кнопку и загружается второе и т.д.
Насколько это реально вообще сделать, если да, то как?

Есть наработка:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub DLFiles(strUrl As String, fileName As String)
On Error Resume Next
Dim b() As Byte
Inet1.Cancel
Inet1.Protocol = icHTTP
Inet1.URL = strUrl
b() = Inet1.OpenURL(, icByteArray)
Open fileName For Binary Access Write As #1
Put #1, , b()
Close #1
End Sub
 
Private Sub Command1_Click()
DLFiles "https://www.cyberforum.ru/images/icons/icon2.gif", "imgAlbum"
Picture1.Picture = App.Path & "/imgAlbum"
Kill (App.Path & "/imgAlbum")
End Sub
Загрузит файл (адрес указан в strUrl), выведет в PictureBox и удалит его.
Нужно подключить Inet1 компонент (Microsoft Internet Transform Control 6).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2013, 22:18
Ответы с готовыми решениями:

Изображение из PictureBox загрузить в DataGridView
Всем доброго времени суток! Такая проблема возникла, необходимо из pictureBox загрузить...

Загрузить изображение в БД SQL из PictureBox
FileStream fStream = new FileStream("c:\\1.ico", FileMode.Open, FileAccess.Read); Byte imageBytes...

Загрузить изображение по ссылке в PictureBox
Как загрузить изображение из интернета в PictureBox? И (не обязательно, но если не сложно), как...

Как загрузить изображение в PictureBox?
Задача по нажатию на кнопку открыть файл(картинку и вывести ее в pictureBox1). Написал следующий...

15
Заблокирован
05.05.2013, 06:47 2
Интернет-информер на форме, как реализовать

Только отображай не в браузере, а в PictureBox.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
05.05.2013, 10:52 3
Цитата Сообщение от Craw Посмотреть сообщение
Нужно подключить Inet1 компонент (Microsoft Internet Transform Control 6).
- так в чем дело? Подключай - все будет работать.
0
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
05.05.2013, 14:06  [ТС] 4
Цитата Сообщение от Catstail Посмотреть сообщение
- так в чем дело? Подключай - все будет работать.
Я имел ввиду, что вам нужно его подключить, чтобы код работал у вас.

Ещё вместо
Visual Basic
1
Picture1.Picture = App.Path & "/imgAlbum"
нужно
Visual Basic
1
Picture1.Picture = LoadPicture(App.Path & "/imgAlbum")
, но это мелкий баг просто.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
05.05.2013, 14:14 5
Ты хочешь, чтобы я проверил работоспособность кода?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
05.05.2013, 14:22 6
Как и следовало ожидать - все работает:
Изображения
 
Вложения
Тип файла: zip t064.zip (5.7 Кб, 56 просмотров)
1
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
05.05.2013, 14:54  [ТС] 7
Цитата Сообщение от Catstail Посмотреть сообщение
Как и следовало ожидать - все работает:
С этим и не было проблем никаких, как загрузить из Интернета картинку - я знал. А вопрос в том, как со страницы поиска в Яндекс.Картинки загрузить нужную, если адрес её заранее не известен.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
05.05.2013, 15:13 8
Адреса можно достать из кода страницы... Вручную или выделением контекста.
Visual Basic
1
2
3
4
5
6
7
Private Sub Command1_Click()
 
    DLFiles "http://yandex.st/images-thumbs/_/gAMnUZsuUu9X6ZamDhm6ZA5EgM.jpg", App.Path & "\111.jpg"
    Picture1.Picture = LoadPicture(App.Path & "\111.jpg")
    Kill App.Path & "\111.jpg"
 
End Sub
Изображения
 
0
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
05.05.2013, 15:35  [ТС] 9
Цитата Сообщение от Catstail Посмотреть сообщение
из кода страницы
Вот тут можно поподробнее, как это сделать?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
05.05.2013, 18:02 10
Загружаем код страницы "яндекс-картики" в байтовый массив (с помощью MSInet); превращаем в строку; ищем в строке все вхождения "src="..."
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
05.05.2013, 18:45 11
Примитивное извлечение имен картинок:

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
Public Sub DLFiles(strUrl As String)
On Error Resume Next
Dim b() As Byte
       Me.List1.Clear
       Me.Inet1.Cancel
       Me.Inet1.Protocol = icHTTP
       Inet1.URL = strUrl
       b() = Inet1.OpenURL(, icByteArray)
       p& = UBound(b, 1)
       BigBuf$ = Space$(p& + 1)
       For i& = 0 To p&
           Mid$(BigBuf$, i& + 1, 1) = Chr$(b(i&))
       Next i&
       ppp& = 1
       Do
          k& = InStr(ppp&, BigBuf$, "src=")
          If k& = 0 Then Exit Do
          u& = InStr(k& + 5, BigBuf$, Chr$(34))
          Pic$ = Mid$(BigBuf$, k& + 7, u& - k& - 7)
          If Right$(Pic$, 4) = ".jpg" Or Right$(Pic$, 4) = ".gif" Or Right$(Pic$, 4) = ".png" Then
             Me.List1.AddItem Pic$
          End If
          ppp& = u&
       Loop
End Sub
Миниатюры
Загрузить изображение из Интернета, вывести в PictureBox и удалить  
Вложения
Тип файла: zip t064b.zip (6.1 Кб, 9 просмотров)
2
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
05.05.2013, 20:21  [ТС] 12
Из ссылок вида images.yandex.ru/yandsearch?text=xxx (http://images.yandex.ru/yandse... nk%20floyd)
находит только одну картинку - логотип.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
05.05.2013, 20:55 13
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Не понимаю... Доработал программу - теперь она показывает список картинок и грузит выбранную в PB. Вот, смотри:
Миниатюры
Загрузить изображение из Интернета, вывести в PictureBox и удалить   Загрузить изображение из Интернета, вывести в PictureBox и удалить   Загрузить изображение из Интернета, вывести в PictureBox и удалить  

Вложения
Тип файла: zip t064b.zip (7.4 Кб, 24 просмотров)
2
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
08.05.2013, 16:15  [ТС] 14
Это, конечно, хорошо ты сделал, но вот со страницы главной images.yandex.ru он без проблем загружает изображения, а вот если поиск определенного (в TextBox пользователь вводит), то открывается нужная страница (вида images.yandex.ru/yandsearch?text=xxx, где вместо ххх - значение текстбокса), и там находит лишь одно изображение - логотип Яндекса, и всё. Остальных нет.
Миниатюры
Загрузить изображение из Интернета, вывести в PictureBox и удалить  
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,637
Записей в блоге: 13
08.05.2013, 16:40 15
Я не понял, какой адрес нужно ввести.
0
238 / 49 / 6
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
08.05.2013, 20:09  [ТС] 16
Суть данной программы - пользователь вводит в Textbox или появляющийся Inputbox слово или сочетание слов любых, нажимает на кнопку - программа загружает по его запросу картинку из поиска Яндекс. Это делается просто: в твоем коде открывается файл по адресу "images.yandex.ru/yandsearch?text=" с добавлением после значка "=" запроса автора (т.е. strUrl = "images.yandex.ru/yandsearch?text=" & Text1.Text например). Так вот находит лишь почему-то логотип Яндекса с таких страниц, пример на скриншоте выше.
0
08.05.2013, 20:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2013, 20:09
Помогаю со студенческими работами здесь

Не удаётся загрузить изображение из интернета
Уважаемые знатоки. Я написал небольшую функцию для загрузки изображения на интернет-страницу (для...

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

Как загрузить изображение из папки приложения в PictureBox?
Пишу небольшой проект и, потестив на разных компьютерах, подумал, что стоит сделать инсталлятор,...

Загрузить изображение из Stream в Image или в PictureBox
через диалог выбрал файл записал в Stream как мне теперь закинуть его в пиктури бокс ? напишите...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru