Типы программирования, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

Фичя,Помогите!
Шрифты
Как определить сколько раз запущен фаил?
Хм......, Э....Сори...
Глюк в Animated Menus!
Странная DLL, с ресурсами
Иконка в системном трее, статья
Сервис + иконка в трее
Как читать ATIP
несколько процессов последовательно
Звуковая карта, Определить
DLL???, Туча вопросов помогите!!
Низкоуровневый перехват мыши, работа с ловушками
Как минимизировать все окна
Как Вы относитесь к курящим девушкам?
Нужен хелп (работа с реестром: LoadKey), Не работает LoadKey
Узнать частоту обновления экрана?, Win9X, WinXP
Использование dll, Выход из процедурыи дельфи
Синхронизация при помощи крит. секции, как???
Изменение иконки в систрее
WinAmp, Компоненты
Как Вы относитесь к курящим девушкам?
Установка компонентов из .pas файлов
перекомпиляция system.pas, ... нужен debug режим
Где искать буфер TBitmap
TFileStream, Поиск
SMART API
asm-вставки в делфи
Список используемых dll, Чужого приложения
Формы, окна
Скрыть приложение из ALT+TAB и списка приложений., Как скрыть в windows xp\2k
Потоки и процессы, реализация задачи
Как сконвертировать String в HKEY правильно?!, HKEY(Text: String) работает некорректно
Создание потоков, TThread наверное?
"Послать" сообщение
Удаление расшаренных ресурсов
Нафигация по файловой системе, как реализовать?
Как запустить чужой exe, как поток к своей программе
Защита от копирования
Вопрос по коду., Работа с окнами
Блокировать вывод на экран
Сообщение своей проге по сети, Как послать сообщ. своей проге по сети?
Мигающая иконка в System Tray, Заставить мигать иконку в System Tray
Определить номер кластера HDD, Программное определение номера кластера
Рассылка почты с помощью Делфи, Рассылать письма (адреса одинаковые)
Сервисы, Не работает
Копирование файлов..., ...используя "msctls_progress32"
Реестр + ExtractIcon
CloseWindow(FindWindow(nil,pchar(filename)));, не закрывает окно а сворачивает почему?
Виртуальный диск, Как создать?
Реестр и wallpaper(как?), Реестр и wallpaper(как?)
Ошибка, Прога полностью на WinAPI
Перехват API функции, Простой пример
id иконки в трее, ...как определить
Отслеживание деятельности сторонних программ, обращения к диску, процессор и память
ICQClient событие OnStatusChange не отрабатывается, Как получить статус уина?
Как получить инфу о сервисе в ХР?
Изменить Папку Рабочий стол
Как сейчас на счет бесплатного Delphi 6 personal
QueryPerformanceCounter, Определить загрузку процессора
Использование файла подкачки, какую пользу извлечь?
Импорт файлов реестра, Нужен програмный импорт файлов реестра
А-у! Дельфи 7.0 взбесился, Посоветуйте, что делать
EXE и CD, EXE и CD
Как отловить когда жмут "Свернуть все окна"?, Application.OnMinimize не происходит
Несовместимость..., String and PWideChar
Как Вы относитесь к курящим девушкам?
Обноновить конфигурацию оборудования, естно программно :)
Служба индексирования
SystemTr(a)y... Или "...место где часы...", SystemTr(a)y... Или "...место где часы..

Платные хостинги     Раскрутка сайта     Книги по программированию


Где искать буфер TBitmap

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Люди добрые помогите, где мне отыскать адрес буфера (ну где хрянятся все пиксели в виде dw), мне просто нужен быстрый доступ к этим самым пикселям и я хочу писать алгоритм обработки на asm, но я не знаю как и где этот буфер храниться... Помогите... Зараннее спасибо.

- Насколько я помню, нигде.Можешь попробовать сохранить в буффер, модифицировать и загрузить обратно.

- Я слышал, что надо рыть где-то в GetDIBits, GetDIB, GetDIBSizes но я с Win API не дружу помогите мне плиз.

- Например: Код function HBitmapToCanvas(Source:HBitmap;Canvas:TCanvas;AlphaClr:TColorRef;var Rec:TRect):boolean;var bmInfo:BITMAPINFO;    W,H:Integer;    X,Y,i:Integer;    bmDIB:HBitmap;    tColor:TColorRef;    MemBits:PRGBTriple;begin Result:=false; if Source=0 then exit; GetObject(Source,SizeOf(bmInfo),@bmInfo); W:=bmInfo.bmiHeader.biWidth; H:=bmInfo.bmiHeader.biHeight; if (W=0)and(H=0) then exit; Rec:=Rect(0,0,W,H); i:=(W*3)-((W*3) div 4)*4; if i<>0 then i:=4-i; bmInfo.bmiHeader.biWidth:=W; bmInfo.bmiHeader.biHeight:=H; bmInfo.bmiHeader.biPlanes:=1; bmInfo.bmiHeader.biBitCount:=24; bmInfo.bmiHeader.biCompression:=BI_RGB; bmInfo.bmiHeader.biSizeImage:=0; bmInfo.bmiHeader.biXPelsPerMeter:=2834; bmInfo.bmiHeader.biYPelsPerMeter:=2834; bmInfo.bmiHeader.biClrUsed:=0; bmInfo.bmiHeader.biClrImportant:=0; bmInfo.bmiHeader.biSize:=SizeOf(bmInfo.bmiHeader); bmDIB:=CreateDIBSection(Canvas.Handle,bmInfo,DIB_RGB_COLORS,Pointer(MemBits),0,0);    bmInfo.bmiHeader.biWidth:=W; bmInfo.bmiHeader.biHeight:=H; bmInfo.bmiHeader.biPlanes:=1; bmInfo.bmiHeader.biBitCount:=24; bmInfo.bmiHeader.biCompression:=BI_RGB; bmInfo.bmiHeader.biSize:=SizeOf(bmInfo.bmiHeader); GetDIBits(Canvas.Handle,Source,0,H-1,MemBits,bmInfo,DIB_RGB_COLORS);  Y:=H; repeat  dec(Y);  X:=0;  while X<W do   begin    tColor:=RGB(MemBits.rgbtRed,MemBits.rgbtGreen,MemBits.rgbtBlue);    if (tColor<>AlphaClr) then Canvas.Pixels[X,Y]:=tColor;    Inc(MemBits);    inc(X);   end;  PChar(MemBits):=PChar(MemBits)+I; until (Y=0); DeleteObject(bmDIB); Result:=true;end;highlightSyntax('delphiMWQ4Zj','delphi'); Это сообщение отредактировал Girder - 31.5.2005, 11:14

- Если речь про TBitmap (судя по названию темы) - то делай Bmp.ScanLine[0] - адрес начала буфера. Чтобы они были в виде "dw", то предварительно нужно выставить bmp.PixelFormat := pf32bit. Сделай на форуме поиск по слову "ScanLine", найдешь примеры...

- > Bmp.ScanLine[0] - адрес начала буфераНе совсем так. В большинстве битмапов строки лежат в обратном порядке, поэтому началом будет Bmp.ScanLine[Height-1] А для определения нужно помотреть в InfoHeader знак поля biHeightbiHeightSpecifies the height of the bitmap, in pixels. If biHeight is positive, the bitmap is a bottom-up DIB and its origin is the lower left corner. If biHeight is negative, the bitmap is a top-down DIB and its origin is the upper left corner.

- Верно подмечено

- Если это конечно то что тебе нужно но за пикселю в этой компоненте отвечает свойство TBitmap.Handle. Указатель на табицу пикселей. Аналогично TBitmap.Palette - указатель на палитру.

- poor_yorikЭто совсем не то

- Совсем не так. Знак biHeight проверяет сама функция GetScanLine перед выдачей результата. Тобишь, ScanLine[0] будет адресом первой строки при любой власти.

- Dmitry V.Abramov>ScanLine[0] будет адресом первой строки Это адрес ВЕРХНЕЙ строки при выводе битмапа, но не всегда начало адресного пространства, отведенного под пиксельный буфер

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | программирование 1с учебник | программирование сотовых | офшорное программирование | примеры линейное программирование | анализ программирование | программирование делфи | cgi программирование | программирование atmel | школа программирования | типы программирования | практика программирования | программирование autocad | программирование профессиональное | обзор языков программирования | среда программирования delphi | задачи целочисленного программирования | характеристика языка программирования | стиль программирования | постановка задачи программирование | программирование серверов | программирование диплом скачать | применение программирования | Ссылки

Все про практика программирования