|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.10.2012, 22:52 | #1 |
Регистрация: 09.02.2012
Сообщений: 8
|
Скрин экрана. проблема с BMP
здрасте. пытаюсь средствами winapi сделать скрин экрана, есть такой вот код:
Код:
Последний раз редактировалось Pack; 17.10.2012 в 23:04. |
18.10.2012, 05:54 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
Надо создать обычный скрин экрана (с соответствующими настройками) и сравнивать побайтно файлы (я пользуюсь тотал коммандером для этого) плюс дебажить потом, в какой момент неправильно записываются данные.
Пока что, по приведённому коду заметил одну неточность: массив 0..53 (54элт-а) а запись всего 53 элементов. |
18.10.2012, 09:21 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
1)почти все функции WinAPI это реально функции, возвращающие значение об успехе.
кто его проверять будет?(+ GetLastError) 2)вы заполняете BmpInfo, и при этом пишете какой то свой заголовок, он точно верный?(пишите BmpInfo тогда уж, точнее помоему тока bmiHeader идет) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.10.2012, 09:50 | #4 | ||
Регистрация: 09.02.2012
Сообщений: 8
|
Цитата:
Цитата:
но проблема осталась в силе, через раз работает как надо, а на некоторых ОС и вообще отказывается работать. на самом деле код собирался по кусочкам из разных источников, а bmpheader был нагло взят из простого скрина экрана, сделанного вручную. сначала в файл пишется заголовок, затем "данные" bits, а bmiHeader это не сам заголовок bmp в нашем случае как я уже написал, оно работает через раз и не везде, а точнее просто белый лист вместо скрина делает. так вот выяснилось, что bits заполняется одними нулями, но не всегда! соответственно если там были одни нули - то выйдет простой белый лист, а если нужные данные то получается полноценный скрин. отсюда и вопрос, почему это просиходит? от чего такая случайность, и в какую сторону копать? спасибо. |
||
18.10.2012, 09:52 | #5 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Цитата:
Благодарить в репутацию. Проклинать — туда же
|
|
18.10.2012, 10:00 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
далее, раз скрин экрана то вам нужно GetDC выходит(параметр 0)
и вообще поидее на каждое GetDC/GetWindowDC должен быть ReleaseDC. а так, вперед ошибки анализировать, лишь потом поговорим. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скрин экрана | atihiy2010 | Общие вопросы Delphi | 14 | 05.05.2012 13:27 |
Проблема в отображении BMP в Делфи | FoggySpurs | Помощь студентам | 2 | 23.04.2012 02:57 |
формат bmp проблема с RGBQUAD | androk | Общие вопросы C/C++ | 0 | 06.11.2011 14:47 |
Проблема с TImage, BMP, JPEG | Florento | Общие вопросы Delphi | 5 | 16.06.2011 16:18 |
BMP, JPG скриншоты экрана. Большой размер файлов даже с использованием компрессии. | Человек_Борща | Общие вопросы Delphi | 4 | 05.04.2010 19:10 |