bitbtn

Тема в разделе "WASM.WIN32", создана пользователем rodger, 23 апр 2008.

  1. rodger

    rodger New Member

    Публикаций:
    0
    Добрый вечер всем. Жутко меня интересует как превратить любой файл в бмп-шную картинку, мне сказали авторитеные люди что посредством апи функции bitbtn, но как не особо понятно, мол там в контектсе устройтва нужно как то прописать путь к исходному файлу. Внимательно выслушаю все правдоподобные мысли.
     
  2. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    меня жутко интересует что значит превратить файл в бмпшную картинку....
     
  3. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    вероятно, имелось в виду - впаять данные в bmp.
    я о таком частенько слышал, но нарочно не вникал.
    у bmp структура очень примитивная, туда фиг что запрячешь,
    я бы лучше взял gif, ибо он является архивом PNGшек,
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    ШТО? ಠ_ಠ

    rodger
    Ты испытываешь необходимость в заполнении BITMAPFILEHEADER, BITMAPINFOHEADER.

    Код (Text):
    1.     BITMAPFILEHEADER FileHeader;
    2.     BITMAPINFOHEADER InfoHeader;
    3.     memset(&FileHeader, 0, sizeof(FileHeader));
    4.     memset(&InfoHeader, 0, sizeof(InfoHeader));
    5.  
    6.     FileHeader.bfType = 'MB';   // LE-BE
    7.     FileHeader.bfOffBits = sizeof(FileHeader) + sizeof(InfoHeader) + 2; // +2 for dword align
    8.     FileHeader.bfSize = FileHeader.bfOffBits + RgbSize;
    9.  
    10.     InfoHeader.biSize = sizeof(InfoHeader);
    11.     InfoHeader.biWidth = SideSize;
    12.     InfoHeader.biHeight = SideSize;
    13.     InfoHeader.biPlanes = 1;
    14.     InfoHeader.biBitCount = 32;
    15.     InfoHeader.biCompression = BI_RGB;
    Соответственно, по смещению sizeof(FileHeader) + sizeof(InfoHeader) + 2 от начала конечного файла должен располагаться массив данных исходного файла.

    Лол, вот так выглядит блокнот:
    [​IMG]
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    http://www.dumpanalysis.org/blog/index.php/2007/08/04/visualizing-memory-dumps/
     
  6. rodger

    rodger New Member

    Публикаций:
    0
    Громадное тебе спасибо за исходник и за толковые коментарии, я эти методы долго искал. Спецификацию графических файлов давно скачал и некоторые исходники по стенографии, но были проблемы в работе моего приложения.
     
  7. rodger

    rodger New Member

    Публикаций:
    0
    Текст читал, программу скачал, но исходников там нет. Все равно спасибо за внимание.
     
  8. Nero_n

    Nero_n New Member

    Публикаций:
    0
    rodger
    Имей в виду, что в быстрокоде Sol'а не учитывается факт того, что каждый 4й байт не оказывает влияния на рисунок - составляющая 'alpha' не играет роли даже в 32х-битных bmp. Из-за этого конверсия такого bmp в, скажем, png, приведет к невозможности восстановления исходных данных. (Я-то сразу увидел, что приложенная картинка notepad.exe выглядит не как код х86).

    А высоту битмапу лучше ставить отрицательную (нагляднее).
     
  9. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Если требования к проге позволяют юзаю freeimage. Решает массу вопросов.
     
  10. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    rodger
    Есть там всё.
     
  11. rodger

    rodger New Member

    Публикаций:
    0
    Пардон, теперь нашел. Просто нетипичный вариант расположения линков на исходники.