Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как CImage передать по сети 
:(
    Опции темы
yurec
Дата 13.1.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 4.7.2007

Репутация: нет
Всего: нет



Привет!

Стоит задача передавать по сети изображения ( примерно 30 джпегов  по 200-300кб в секунду ).
Хочеться ето сделать еффективно и красиво.
Вот думаю над таким вариантом:

Код


//Save
{
    CSocket sockSrvr;
    sockSrvr.Create(9999,SOCK_STREAM,_T("127.0.0.1"));
    sockSrvr.Listen();

    CSocket sockRecv; 
    sockSrvr.Accept( sockRecv ); 

    CSocketFile file(&sockRecv);
    CArchive ar(&file,CArchive::store);
    CArchiveStream stream(&ar);
    CImage img;
    HRESULT hr_res = img.Load(_T("D:\\Documents and Settings\\zhacun\\Desktop\\CreateImagesTest\\clock01.jpg"));
    if (S_OK != hr_res)
      {
      DWORD err = GetLastError();
      ASSERT(FALSE);
      }

    hr_res = img.Save(&stream,Gdiplus::ImageFormatJPEG);
    if (S_OK != hr_res)
      {
      DWORD err = GetLastError();
      ASSERT(FALSE);
      }
 }


Код

//Load
{
  CSocket sock;
  sock.Create();
  UINT res = sock.Connect(_T("127.0.0.1"),9999);
  if (0 == res)
    {
    DWORD nError = GetLastError();
    ASSERT(FALSE);
    }

  CSocketFile file(&sock);
  CArchive ar(&file,CArchive::load);
  CArchiveStream stream(&ar);
  CImage img;

  HRESULT hr_res = img.Load(&stream);//go into gdiplusbitmap.h next
  if (E_FAIL == hr_res)
    {
    DWORD err = GetLastError();
    ASSERT(FALSE);
    }
 }

//gdiplusbitmap.h

inline 
Bitmap::Bitmap(
    IN IStream *stream, 
    IN BOOL useEmbeddedColorManagement
    )
{
    GpBitmap *bitmap = NULL;

    if(useEmbeddedColorManagement)
    {
        lastResult = DllExports::GdipCreateBitmapFromStreamICM(stream, &bitmap);
    }
    else
    {
        lastResult = DllExports::GdipCreateBitmapFromStream(stream, &bitmap); 
    //returns invalidParameter here, output tells: "Warning - Attempt made to seek on a CSocketFile"
    }

    SetNativeImage(bitmap);
}



Подскажите в чём проблема, пожалуйста. Или предложите альтернативу. 

Спасибо.
PM MAIL   Вверх
yurec
Дата 14.1.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 4.7.2007

Репутация: нет
Всего: нет



Вопрос решён, коментарии в другой ветке (мфц), наверное тему лучше удалить.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.