Как сделать Crop изображения в bmp-файл

Тема в разделе "WASM.BEGINNERS", создана пользователем MrBug, 10 сен 2005.

  1. MrBug

    MrBug New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2005
    Сообщения:
    4
    Адрес:
    Ukraine
    Есть такая проблемка:

    Допустим, есть отсканированая страница текста. Текст имеет фиксированую высоту/ширину, но постоянно "скачет". Кроме того, на странице часто появляются "артефакты" (разный мусор в виде чёрных квадратиков).

    Нужно программа, в которой можно было бы (по порядку):

    1. Открыть графический файл (ладно, можно и bmp - можно конвертить из tiff - так как есть готовіе ф-ции API для BMP).

    2. Выделить рамкой часть изображения (или передать как аргументы командной строки, или даже хотя бы как константы)

    3. Сохранить/"скопировать" выделеную часть изображения в новый файл.



    Основные трудности, как я понимаю, именно с сохранением изображения. Во всяком случае я готовой функции API для сохранения DIB/DDB в файл не нашел.



    На WASM.RU есть примерчик (http://wasm.ru/src/3/PaintView.zip), где используется отдельная функция (PROC) BitmapToFile, которая каким-то образом конвертирует Device Dependent Bitmap в Independent Bitmap, создаёт/заполняет две структуры fileheader и dibinfo, потом создаёт файл и пишет туда по порядку fileheader, dibinfo и ещё что-то (...pDIB, dibinfo.bmiHeader.biSizeImage...).



    Возможно, кому-то покажеться что здесь и так я написал ответ на свой вопрос, но я бы сюда (WASM.BEGINNERS) не писал если бы не был "новичком".

    Мне нужна рабочая программа, которая делает то, что я написал без "лишнего мусора". Я-то конечно мог бы сам сесть, поразбираться, но обычно это у меня может затянуться на недели а то и месяцы, а потом и вообще бывает заброшу...



    Помогите, please... Желательно (если возможно, конечно) примеры давать под MASM32v82 и без использования макросредств. Ну, в крайнем случае можно написать .data .data? .const .code , а invoke-и не нравятся - так уже надоели эти многословные high-level lg-ы, что вот, наконец, дорос до АСМ Ж-)



    (Пока пусть кто ответит, а там может ещё напишу, а то что-то много вроде получилось)
     
  2. MrBug

    MrBug New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2005
    Сообщения:
    4
    Адрес:
    Ukraine
    От, думал вначале напишу текст, а потом сформулирую красиво тему. Забыл, мдя... Неужели удалят :-(

    Если модер увыидит, то пусть напишет тему на что-то вроде:

    "Как сделать Crop изображения в bmp-файл", думаю всем будет понятно.
     
  3. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    MrBug

    Если нужна _рабочая_ программа, то почему ты ставишь условия на выбор языка и стиль написания? Домашнее задание?
     
  4. MrBug

    MrBug New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2005
    Сообщения:
    4
    Адрес:
    Ukraine
    q_q:

    Если нужна _рабочая_ программа, то почему ты ставишь

    >условия на выбор языка

    Просто я хочу иметь основу программы, которую я мог бы потом сам расширить



    >и стиль написания? Домашнее задание?

    Нет, это не д/з. Мне удобно каждую строчку комментировать, и аргументы функции соответственно тоже. А если я напишу invoke с 10 аргументами, то потом нужно вглядываться какой аргумент что означает. Можете считать с "эстетической" точки зрения... Я только начинаю писать на АСМ, но сразу смотрю "в будущее" и хочу сразу привыкать как "правильно". А потом ещё дизассемблировать тоже придётся, а там, похоже, invoke .if др не пишуться. IMHO