| Типы программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Перехват вызовов функций, Способы перехвата NetBios in Delphi, у кого есть решение? !!!!!!!!!!!!ПОМОГИТЕ, КТО ЗАНИМАЕТЬСЯ ВЗЛОМОМ ПРОГРАММ Вопрос обо всем Обсчёт трафика! как вычислить IP адрес, programmnym putem! Как можно получить звук с микрофона?, Пример кода Удалить все файлы вместе с директорией Сортировка ListView при нажатии на заголовок, Пример кода Активная форма, Определить активная или нет сведения ICQ, Как получить сведения о ICQ Как работать с Outlook в Delphi, !!!!!!!!!!1ПОМОГИТЕ!!& Работа с почтой, НУЖНА ПОМОЩЬ Как найти окно по неполному названию, Пример кода ОПЫТНЫЙ и не только помогите!!!, ДВА ВОПРОСА Снова TQRCompositeReport Как обновить данные в программе? [D3, Win95/98], Как обновить данные в программе? [D3, Wi TreeView Определение версии винды..., определение версии винды Как узнать имя компьютера?, Пример кода Как Вы относитесь к курящим девушкам? Можно ли снести BIOS, Помогите пожайлуста!!!!!! Как програмно прокрутить Memo, Пример кода Как установить дополнительные компоненты ? Цвета, Как перекрасить TPageControl и TTabCon. Папка -> Файл, Как из папки сделать файл? анимированные изображения Как правильно закрыть..., ... модальную форму... Редактирование Шрифтов для матричных принтеров, Способы и методы exe формат Как перебрать контролы..., ... на форме или в панели.. QuickReport ПОМОГИТЕ ПОЖАЙЛУСТА, ОЧЕНЬ МНОГО ВОПРОСОВ FAQ по форуму, почему-бы не сделать..., ...и не выложить где-нить... Как спрятать окно..., ...при запуске приложения... Копирование с поврежденного носителя..., Копирование с поврежденного носителя... Как заказать сервисный процесс ? Создание экземпляра TWebBrowser в runtime FTP client, Киньте в меня сырцами клиента Delphi и Excel!!! Срочно, Delphi и Excel!!! Срочно Книги по Windows API, Кто может подсказать удачные? Не глобальный хук, Не глобальный хук Вращение для OpenGL, OGL Delphi Games, Кто хочет сделать игру на Delphi, заходи Обработка ошибок в ADODataSet Отжор памяти и как с ним бороться :) Плагины, Взаимодействие Программы с DLL Запись цвета в реестр... Как работать с Excel из Дельфи?? Одолевают сомнения, Периодический опрос буфера Извлечение иконок из EXE и DLL, Пример кода Нифига не понимаю...., API под XP и 98'ой ....:( Как Вы относитесь к курящим девушкам? Библиотека Ctr и Pentium2, Паскаль под Дос Таскание окошка... Определение IP. ЗАЧЕМ??? Перехват нажатия клавиши, Перехват нажатия клавиши Диалог выбора директории aka папки! Применение функции проверки..., Применение функции проверки... Изменить иконку, Как изменить иконку у exe-файла? Дядька Борланд - БРАКОДЕл или глюк в DELPHI 5.0, Глюк в Delphi 5 Насчет опроса про программирование в Delphi Обработка BMP Слежение за нажатием клавиш. Считать текст с IE Hook, hook Чужой COM объект, Есть ли доступ? Проги Из файла в массив..... Plug-in для IE, Как написать? |
Платные хостинги Раскрутка сайта Книги по программированию Обработка BMP
- Такая фигня. Есть рисунок. В нём, в принципе, три цвета. Но один постоянно меняется в незначительных пределах (белый - от серого (10-20%)до слегка (очень слегка) желтоватого, чёрный от серого (80-90%) до чёрного, фиолетовый - от синего до фиолетового). Требуется все точки в пределах одного цвета заменить нужным именно мне цветом, чтобы, например, фиолетовый стал фиолетовым, а не синим, большей частью, белый - белым и т. д. Как это сотворить? Лучше исходником, так как я в BMP не сильно разбираюсь. Варианты в Paint'е и подобные не предлагать ;-) Заранее благодарен! - Я писал такую прогу. И вот как я ее сделал (не знаю, подойдет ли тебе такой вариант): я загружал в ТImage картинку, потом свойством Bitmap.Pixels[x,y] (не помню где ето свойство точно находится) считывал значение цвета. Далее все очень удобно писать на паскале:Код with Image1.Bitmap do case Pixels[X,Y] of [$000000..$00FF00] : Pixels[X,Y]:=green; [$0FACC0..$F0BB0A] : Pixels[X,Y]:=red;....................highlightSyntax('delphizk0ZWY','delphi');И так далее перечисляешь все нужные тебе диапазоны. - Не очень хорошее решение - медленное очень - по-пиксельно заменять... Даже на очень быстрых компьютерах будет заметна прорисовка. Под ДОСом было дело можно было взять 3 цвета, а после для каждого цвета менять палитру, наверное можно и под виндами как-то? А картинка произвольная или какие фигуры? А то можно выводить на экран сразу массивами... - Насчет медленно - это не так страшно (бывает не очень критично, если надо просто перегнать картинки) да и по другому тут сложно что-нибудь придумать. Другое дело что вот такая записьКод case Pixels[X,Y] of [$000000..$00FF00] : Pixels[X,Y]:=green;highlightSyntax('delphiOTdiNT','delphi');если я не ошибаюсь привидет к тому что все цвета начиная от 0 (самый черный) до $00FF00 (самый зеленый) станут просто зелеными, включая такие цвета как $008080(кажеться голубой...), $0000FF(синий кажеться...) и тд.С цветами я могу напутать, но принцип, думаю, понятен.в общем тут прийдеться расклавдывать цвет на составляющие и уже с ними работать... - Конечно!!! Я ето просто так написал, даж е не задумываясь о "промежуточных значениях". Ведь это просто пример...Цитата Не очень хорошее решение - медленное очень - по-пиксельно заменять... Это правда, у меня в книге по АСМу есть пример похожей проги, там используется ММX-технология. Но это на АСМе. Зато быстро работает. - Спасибо ответившим!Только вот чего-то я не нашёл свойство Pixels[X,Y]...To neutrino: давай и на асме - тоже интересно =) - Это свойство объекта Canvas - Я тебе на мыльце скину. Слишком длинный этот код. - Конечно можно! И вот как:Если это BMP то можно с палитрой работать и под Windows.Вообще вот общий формат BMP:Заголовок файлаЗаголовок изображенияПАЛИТРА!ДанныеТеперь можно считать файл BMP и работать с ним как с совокупностью записей. Каких? А вот каких:Информационный заголовок:Код Type BMPInfoHeader = record Field : word; // Всегда "BM" можно в 16-тиричном редакторе смотреть FileSize : LongInt; // это как раз говорит о том, что для больших файлов способ "case Pixels()" очень медленный Reserved1 : Word; // тут 0 Reserved2 : Word; // тут 0 тоже, хотя некоторые программы любят запихнуть сюда что-нибудь DataOffset : LongInt; // это смещение данных относительно начала файла (BOF)end;highlightSyntax('delphiI5ODQ2','delphi');Если при типизированном чтении из файла что-то не так, значит это не BMP (для проверки).Информационный заголовок изображения:Код type ImgInfoHeader = record HeaderSize : LongInt; // размер заголовка = 40 ImgWidth : LongInt; ImgHeight : LongInt; qqq : Word; Compression : LongInt; // какое сжатие, 0 - без оного. BitmapSize : LongInt; // обычно ноль, но данные есть: может глюк :) HResolution : LongInt; // в пикселах на метр VResolution : LongInt; // в пикселах на метр UsedColors : LongInt; // нужно, чтобы было не TrueColor, иначе палитру не поменяешь :( SignificantColors : LongInt; // количество значащих цветов, нужно при отображении на мониторе с меньшим кол-ом поддерживаемых цветовend;highlightSyntax('delphiOWUwYjd','delphi');Ну и то что нужно поменять, это самое находится на смещении 0036h относительно начала:Код type BMPRGB = record Blue : BYte; // Синий, диапазон 0-255 Green : Byte; // и т.д. Red : Byte; bred : Byte;end;highlightSyntax('delphimVhYWYzY','delphi');Вот в последней записи и ковыряйся дорогой товорищ.СУВ.ЗЫ. Милая старушка-склеротик позвала в гости подружек однолеток и чтобы не забыть напоить их чаем написала мелом на кухне: угостить гостей чаем. Пришли гости, старушка на кухню, читает, наливает чай и к гостям, посуду уносит на кухню и опять читает, поит...И так раз 20. Старушки ушли, и по пути разговаривают:-Надо же, сидели у Манюни 3 часа, а она нас даже чаем не напоила!!!-А разве мы у Манюни были? |