Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12

Как сохранить картинку с использованием IHTMLDocument2?

30.06.2014, 16:35. Показов 1678. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
 
IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange(); 
 
foreach (IHTMLImgElement img in doc.images)       {       
 
imgRange.add((IHTMLControlElement)img);       
 
imgRange.execCommand("Copy", false, null);  
 
try{ 
    using(Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))            
    bmp.Save(img.nameProp + ".jpg");     
   } 
catch (System.Exception ex)
   {  
   MessageBox.Show(ex.Message);          
   }       
}
в инете нашёл только через буфер обмена. а нормального способа сохранить картинку нету ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.06.2014, 16:35
Ответы с готовыми решениями:

Как сохранить картинку?
Я новичёк в С++ !!сообственно windows form есть picturebox1 на котором нарисован график!!! как с помощью SaveFileDialog сохранять...

Как сохранить картинку
Имеется адрес картинки, как ее сохранить, на компьютер?

Как сохранить картинку в MySQL?
Подскажите плизз! есть таблица с полем Image BLOB Файл апплоадился ($_FILES), а как его в это поле сохранить?

3
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.06.2014, 16:43
Van111, а зачем вообще веббраузером пользоваться? Отправили get-request, получили url картинки, скачали.
после этого:
C#
1
2
3
4
5
string localFilename = @"c:\localpath\tofile.jpg";
using(WebClient client = new WebClient())
{
    client.DownloadFile("http://www.example.com/image.jpg", localFilename);
}
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
30.06.2014, 16:45  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
Van111, а зачем вообще веббраузером пользоваться? Отправили get-request, получили url картинки, скачали.
после этого:
картинка не выдаётся просто так, только для текущей сессии.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.06.2014, 16:51
Van111, ну так сессия в куках, куки можно к запросу подсоединить. Я бы не советовал, если бы сам этого не делал. Вот пример, правда на powershell, но знакомые пенаты классы узнаете
Bash
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Подключаем скрипт, содержащий общие функции
Import-Module -name (Join-Path ([System.Reflection.Assembly]::GetEntryAssembly().Location | Split-Path) "PowerShellHealthCheckScripts\CommonFunctions.ps1") -Global 
[System.Reflection.Assembly]::LoadWithPartialName('System') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.Net') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.Diagnostics') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.IO') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.Text') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.Web') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.Math') | out-null
[System.Reflection.Assembly]::LoadWithPartialName('System.Text.RegularExpressions') | out-null
 
#Удаление льготы
function RemoveBenefit
{   
    $inputParams = (Get-Variable -scope Global -name InputScriptParameters).Value
#Init
    $authUrl = $inputParams.AuthUrl
    $roleUrl = $inputParams.RoleUrl
    $rolePostParams = $inputParams.RolePostParams
    $patientRegisterUrl = $inputParams.PatientRegisterUrl
    $id = $inputParams.Id
    $editCardUrlMask = $inputParams.EditCardUrlMask
    $benefitUrlMask = $inputParams.BenefitUrlMask
    $removeBenefitUrl = $inputParams.RemoveBenefitUrl
    $benefitCode = $inputParams.BenefitCode
    $removeBenefitPostParamsMask = $inputParams.RemoveBenefitPostParamsMask
#Endinit
        $url = $authUrl
        $cookieContainer = New-Object System.Net.CookieContainer
        $timer = [System.Diagnostics.Stopwatch]::StartNew()
        $editCardUrl = [System.String]::Format($editCardUrlMask, $id)
        $benefitUrl = $benefitUrlMask + $id
        $removeBenefitPostParams = [String]::Format($removeBenefitPostParamsMask, $id, $benefitCode)
 
 
 
    
    #авторизация
        $content = GetContentFromUrl $authUrl $cookieContainer
 
    #выбор роли
        $content = GetContentFromUrl $roleUrl $cookieContainer $rolePostParams
 
    #заход на целевую страницу           
        $content = GetContentFromUrl $patientRegisterUrl $cookieContainer  
 
    #редактирование карт          
        $content = GetContentFromUrl $editCardUrl $cookieContainer 
 
 
        $lastname = GetFieldValue $content 'lastName'
        $name = GetFieldValue $content 'name'
        $secondName = GetFieldValue $content 'secondName'
        $snils = GetFieldValue $content 'snils'
        $birthdate = GetFieldValue $content 'birthDate'   
        
           
     #список льгот
        $content = GetContentFromUrl $benefitUrl $cookieContainer
 
        #удаление льгот
        $content = GetContentFromUrl $removeBenefitUrl $cookieContainer $removeBenefitPostParams
 
 
 
        
 
 #здесь нужна проверка ответа на "безошибочность"
 
        $content = GetContentFromUrl $editCardUrl $cookieContainer
        
        $pattern = '<td[^>]*class="tdBenefit"[^>]*>\s*{0}\s*</td>' #<td class="tdBenefit">$benefitCode</td>
        $benefitIsRemoved = ! [System.Text.RegularExpressions.Regex]::IsMatch($content, [string]::Format($pattern, $benefitCode), [System.Text.RegularExpressions.RegexOptions]::IgnoreCase)
 
        SetResult -result $benefitIsRemoved -resultCount ($timer.Elapsed.TotalSeconds) -properties (GetAdditionalProperties -pingUrl $url -responseUri $response.ResponseUri -httpResponseStatusCode $response.StatusCode)
}
 
 
RemoveBenefit
где GetContentFromUrl
Bash
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
function GetRequest([string] $url, [System.Net.CookieContainer] $cookieContainer, [string] $postParams, [string] $userAgent)
{
        [system.Net.HttpWebRequest] $request = [system.Net.HttpWebRequest]::Create($url)
        $request.CookieContainer = $cookieContainer
        $request.UserAgent = $userAgent
        
        if (![string]::IsNullOrEmpty($postParams))
        {
            $request.Method = "POST"
            $request.ContentType = "application/x-www-form-urlencoded"
            $request.ContentLength = $postParams.Length
            [System.IO.TextWriter] $requestWriter = New-Object System.IO.StreamWriter($request.GetrequestStream())
            $requestWriter.Write($postParams)
            $requestWriter.Close()
            $requestWriter.Dispose();
        }
        
        return [system.Net.HttpWebRequest] $request
}
 
function GetContentFromUrl([System.String] $url, [System.Net.CookieContainer] $cookieContainer, [System.String] $postParams, [string] $userAgent)
{
        try
        {
            $request = GetRequest $url $cookieContainer $postParams $userAgent
            $Response = $request.GetResponse()
 
            [System.IO.TextReader] $ContentStream = New-Object System.IO.StreamReader($Response.GetResponseStream())
            $Content = [System.Web.HttpUtility]::HtmlDecode($ContentStream.ReadToEnd())
            $ContentStream.Close()
            $ContentStream.Dispose()
            $Response.Close()
 
            if($Response.StatusCode -ne 200)
            {
                throw;
            }
            return $Content
        }
        catch [System.Net.WebException]
        {
            try
            {
                $exception = $_.Exception 
                $status = GetStatusDescription( $exception.Status)
                
                $Error = GetExceptionDetails( $exception)
                $errorInfo = GetErrorInfo($exception)
                $errorDescription = GetErrorDescription($exception)
                
                $responseText = GetFailedResponseText -exception ($exception)
                
                if($exception.Response -ne $null)
                {
                    $exception.Response.Close()
                }
            
                SetResult -result $false -info $errorInfo -properties (GetAdditionalProperties -pingUrl $url -responseUri $exception.Response.ResponseUri -httpResponseStatusCode ($exception.Response.StatusCode) -errorCode ($ErrorCode.WebError) -errorDescription $errorDescription -responseText ($responseText))            
                Exit
            }
            catch [System.Exception]
            {
                [System.String] $resultText = "При получении ответа произошла ошибка :{0} {1} {2} " -f ($status, $exception, $exception.GetType())
                SetResult -result $false -info $errorInfo -properties (GetAdditionalProperties -pingUrl $url -resultCount 0 -errorDescription $errorDescription -httpResponseStatusCode 0) 
                Exit
            }
        }     
}
там и сессии, и куки, и все что надо используется
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.06.2014, 16:51
Помогаю со студенческими работами здесь

Как сохранить картинку на форме
Значит так: Имеется форма, на которой расположен компонент Image, OpenDialogPicture и произвольная кнопка для загрузки картинки на форму....

Как сохранить картинку в файл ?
Я программно формирую некую картинку ( Picture) на экране. Умею послать ее на принтер. А как сохранить картинку в файл, например,...

Как сохранить картинку-ссылку
Здравствуйте. Никак не могу понять, как сохранить и вывести картинку. Картинку получаю с ютуба. Вставляю ссылку в форму, обработчик...

Как сохранить картинку в папку
Хочу по нажатию на кнопку, чтобы открывался OpenPictureDialog1, в котором вы выбираем любую картинку, не важно какое название и расширение,...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru