Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Вывод картинок в графическом режиме |
Автор: Inst 28.5.2006, 20:30 | ||||
Работаю в графическом режиме 16 цетов, 640*480. Написал фунцкию вывода картинок:
Потом, например:
(Да, картинки в формате gra, т.е. они вообще без разрешения, я их из bmp специальной программой конвертировал) Но: обычно в Паскале подобной фунцкией я выводил без проблем картинки до 64 кб. Здесь же иногда выведет картинку 38 кб нормально (на которой допустим мало содержимого), а иногда 8кб вообще криво выводит, с помехами, не знаю, size переглючивает. Подскажите, что делать? Или есть еще норм. способ вывода картинок? з.ы. Среда: Borland C под DOS =) Заранее спасибо |
Автор: Inst 28.5.2006, 21:28 |
Так, есть прогресс: Если исправить вот так: fl=fopen (filename,"rb"); Т.е. не "r" а "rb" (я так понял это readblock) то читает нормально файлы до 32кб. Но все же, чтобы вывести картинку на полный экран (128 кб) получается ее надо разбить на 4 файла. Не удобно, особенно если у меня много таких картинок... ![]() Не знаете как можно сделать чтобы считывать и выводить большие картинки? (128кб или хотя бы уж 64кб). Заранее спасибо (еще раз) =) |
Автор: volvo877 29.5.2006, 17:32 | ||
Inst, зачем мешать в одну кучу С и С++? Пользуйся чем-то одним:
Только вот программу компилируй НЕ в модели памяти "tiny" |
Автор: Inst 29.5.2006, 20:48 |
Спасибо, но вот это что значит? |
Автор: Inst 30.5.2006, 17:01 |
Ааа подскажите, что делать, у меня на середине программа виснет или вообще перестает что-то выводить в граф. режиме! Наверное она съедает всю память! Что делать? Мне проект завтра сдавать =)) В функции подгрузки картинок я использую free (p1); Все равно такое ощущение как будто памяти [censored 6]... (Пишу же под DOS борландом, там памяти дается наверное килобайт 128, [censored 6] ![]() Заранее спасибо за помощь! |
Автор: bsa 31.5.2006, 10:18 |
Ты, наверное, забываешь сделать free, для выделенной памяти. Поэтому у тебя она и съедается. К тому же, размер блока, который могут читать стандартные досовые функции - 65535 (именно 65536-1) байт. У меня есть сомнения, что возможно чтение через границу сегментов. Поэтому, самый лучший способ это: открытие файла, выделение буфера, чтение части картинки в буфер, вывод на экран, чтение следующей части..., освобождение буфера, закрытие файла. |