Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2014, 10:59   #1
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию Оптимизация загрузки изображения из сети на CLI

Проблема в следующем.
Я только недавно начал писать в WinForms и поэтому для меня CLI это темноватый лес.
К WinForms у меня подключен ещё и Tao::OpenGl, и мне необходимо загрузить изображение из интернета и преобразовать его в текстуру OpenGL. Рабочий код есть, но хотелось бы упросить и ускорить этот алгоритм.
Если конкретнее - как можно проще и быстрее получить массив unsigned char (не array <char,1>^, а обычный массив char* из С++), в котором заключается загружаемое изображение.
Вот это чудо:
Код:
unsigned int WebToGlPicture(String^ pic_link)
{
//Здесь я загружаю изображение в пикчабокс на форме
WebClient^ wc = gcnew WebClient;
MemoryStream^ m = gcnew MemoryStream(wc->DownloadData(pic_link));
streambox1->Image = System::Drawing::Image::FromStream(m);
//а потом сразу из пикчабокса выдираю пиксели,..
Bitmap^ myBitmap = gcnew Bitmap(streambox1->Image);
<...>
unsigned char *newdata = new unsigned char[datawidth];
//и помещаю их непосредственно в целевой массив newdata
while(i < datawidth && (x < myBitmap->Width && y < myBitmap->Height))
{
if (curcolor == 0)
newdata[i] =  myBitmap->GetPixel( x, y ).R;
if (curcolor == 1)
newdata[i] =  myBitmap->GetPixel( x, y ).G;
if (curcolor == 2)
newdata[i] =  myBitmap->GetPixel( x, y ).B;
<...>
}
//и далее ряд Ogl команд для создания текстуры
<...>
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 04.12.2014, 11:39   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

По-моему надо Bitmap.LockBits использовать.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
bass.dll аварийное завершение загрузки музыки из сети Mr_F Мультимедиа в Delphi 5 16.08.2013 19:45
Проблема загрузки изображения в Image Zuba C++ Builder 4 04.05.2012 07:51
Процент загрузки сети Lindemann66 Qt и кроссплатформенное программирование С/С++ 0 18.10.2011 13:56
Есть ли такой компонет?ЛистБокс с функцией загрузки фонового изображения Дима я Компоненты Delphi 14 26.06.2009 20:08
Ошибка при загрузки изображения Volkogriz Общие вопросы Delphi 13 13.01.2009 01:51