На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Сохранение BMP (API)
    Как сохранить BMP, созданую. как DIB.
      Посмотри на codeproject.com, вроде видел... В какой-то книжке видел класс-обёртку API (не MFC), который это всё позволял.
        Я посмотрел сылку ноничего не нашел, :(
        Но вроде бы задачка то простая?
          http://download.microsoft.com/download/platformsdk/file90/3.1/W31/EN-US/WINCAP.EXE
          правда, это старьё, но код погляди
          Сообщение отредактировано: Codemaster -
            Там все до безобразия просто. Сохраняешь сначала заголовок, потом битовый массив. Примерный код из хелпа BC5.0 :
               /* Create the .BMP file. */

               hf = CreateFile(pszFile,
                              GENERIC_READ | GENERIC_WRITE,
                              (DWORD) 0,
                              (LPSECURITY_ATTRIBUTES) NULL,
                              CREATE_ALWAYS,
                              FILE_ATTRIBUTE_NORMAL,
                              (HANDLE) NULL);

               if (hf == INVALID_HANDLE_VALUE)
                   errhandler("CreateFile", hwnd);

               hdr.bfType = 0x4d42;        /* 0x42 = "B" 0x4d = "M" */

               /* Compute the size of the entire file. */


               hdr.bfSize = (DWORD) (sizeof(BITMAPFILEHEADER) +
                            pbih->biSize + pbih->biClrUsed
                            * sizeof(RGBQUAD) + pbih->biSizeImage);

               hdr.bfReserved1 = 0;
               hdr.bfReserved2 = 0;

               /* Compute the offset to the array of color indices. */

               hdr.bfOffBits = (DWORD) sizeof(BITMAPFILEHEADER) +
                               pbih->biSize + pbih->biClrUsed
                               * sizeof (RGBQUAD);

               /* Copy the BITMAPFILEHEADER into the .BMP file. */


               if (!WriteFile(hf, (LPVOID) &hdr, sizeof(BITMAPFILEHEADER),
                  (LPDWORD) &dwTmp, (LPOVERLAPPED) NULL))
                  errhandler("WriteFile", hwnd);

               /* Copy the BITMAPINFOHEADER and RGBQUAD array into the file. */

               if (!WriteFile(hf, (LPVOID) pbih, sizeof(BITMAPINFOHEADER)
                             + pbih->biClrUsed * sizeof (RGBQUAD),
                             (LPDWORD) &dwTmp, (LPOVERLAPPED) NULL))
                  errhandler("WriteFile", hwnd);

               /* Copy the array of color indices into the .BMP file. */


               dwTotal = cb = pbih->biSizeImage;
               hp = lpBits;
               while (cb > MAXWRITE)  {
                       if (!WriteFile(hf, (LPSTR) hp, (int) MAXWRITE,
                                     (LPDWORD) &dwTmp, (LPOVERLAPPED) NULL))
                           errhandler("WriteFile", hwnd);
                       cb-= MAXWRITE;
                       hp += MAXWRITE;
               }
               if (!WriteFile(hf, (LPSTR) hp, (int) cb,
                    (LPDWORD) &dwTmp, (LPOVERLAPPED) NULL))
                      errhandler("WriteFile", hwnd);


               /* Close the .BMP file. */
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0247 ]   [ 16 queries used ]   [ Generated: 27.04.24, 21:37 GMT ]