Delphi за професионалисти
За растерни формат - DIB или DDB - отговаря имот:
тип TBitraapHandleType = (bmDIB, bmDDB);
имот HandleType: TBitmapHandleType;
Желаният дълбочината на цвета на растерна графика може да се намери и инсталира отново, промяна на стойността на имота:
TPixelFormat = (pfDevice, pflbit, pf4bit, pfSbit, pflSbit, PF 6 бита, pf24bit, pf32bit, pfCustom!);
имот PixelFormat: TPixelFormat;
Режим pfDevice съответства на DDB на растерна графика. Дълбочината на цвета на 1, 4 и 8 бита на пиксел - традиционното и включва наличието на изображението палитра. Други видове грижи за незабавното съхранение на яркостта на точки във всеки един от трите основни цвята - червен (R), зеления (G) и синия (B). Бит 15 съответства малко разпределение бита 5-5-5 (RGB555), 16 бита - RGB 565, 24 бита - RGB888. битов режим 32 е подобна на 24-малко, но това се добавя допълнително четвърто въже (алфа канал), съдържащи допълнителна информация за прозрачността на всяка точка. Режим pfCustom е предназначен за изпълнението на собствените графичен дизайн на програмиста. В стандарт се използва в класната стая TBitmap свойства PixelFormat в режим pfCustom ще се провалят - така че да го използвате само необходимо пишете потомци TBitmap.
А растерна графика е вид ресурс. Естествено, клас TBitmap поддържа зареждане на ресурс за кандидатстване:
процедура LoadFromResourcelD (съд: THandle; RESID: цяло число);
процедура LoadFromResourceName (съд: THandle; Конст ResName: низ);
Ето например - това е глобална променлива система модул. съхраняване на уникален идентификатор бягане копие от заявлението (или динамична библиотека връзка).
достъпни чрез имота растерни платно:
имот Платно: TCanvas;
Тя може да се използва за изготвяне на повърхността на растерна графика. Моля, обърнете внимание, че няма други наследници TGraphic платно не е нужно.
Дръжки растерна графика и неговата палитра се предлагат като свойства:
имот Дръжка: HBITMAP;
имот Palette: HPALETTE;
При работа с класа TBitmap. имайте предвид, че на принципа на "един обект - една дръжка", защото на механизма за кеширане, е неправилно. Две методи:
функция ReleaseHandle: HBITMAP;
функция ReleasePalette: HPALETTE;
връща манипулатор към растерна графика и палитра, съответно, и след нула, дескрипторите, т.е.. д., тъй като това са "дадени" на потребителя.
Когато всеки външен адрес на дескриптора на растерна графика, и всеки опит да привлече на своя платно разделение на едно изображение няколко обекта е прекъснат, а обектът получава своя собствена копие на съдържанието на дескриптора. За да направите това, има и методи:
- процедура Скрит - разтоварване на потока от изображение и унищожава дръжки растерна графика и палитра;
- процедура Freeimage - "освобождаващо" растерна графика дръжка за по-нататъшна употреба и модификация на. Това означава, че ако дръжката има сведение, че е дублиран; Нахранете изчистени.
В растерна графика може да бъде черно-бяло и цветно, че се определят свойствата:
имот Монохромно: Булева;
Вярно стойност съответства на един монохромен растерна графика. Когато съдържанието му се променя, превръщането на необходимата форма.
За прозрачността на растерна графика отговаря на следните характеристики:
имот TransparentColor: TColor;
тип TTransparentMode = (tmAuto, tmFixed);
имот TransparentMode: TTransparentMode;
Ако имотът е настроен на режим TransparentMode tmAuto. за прозрачен (фон) Цветът е взето на горния ляв пиксел. В противен случай, цветът е взета от Transparentcolor собственост.
В растерна графика може да се използва като маска за други растерни изображения. В този случай, тя се превръща в два цвята, където боядисани в бяло фон точка (виж Transparentcolor собственост.) И черно - останалото. В подкрепа на този режим са следните методи и свойства:
процедура маска (Transparentcoior: TColor);
имот MaskHandle: HBITMAP;
функция ReleaseMaskHandle: HBITMAP;
И накрая, последната от сметката ще се смята за една много важна функция битова карта TBitmap. Ако форматът на съхраняването й - DIB, е възможно да се ползват данните повечето от растерна графика:
имот ScanLine [ред: цяло число]: Стрелката;
Този имот е масив от указатели към редовете на данните за растерни. параметър РЕД съдържа номера на реда. Трябва да се помни, че в повечето случаи на линията в растерна графика са подредени в паметта от долу нагоре и в действителност първият заглавната част се съхранява след най-долния ред. Код, който връща стойност ScanLine свойства. тя взема предвид; така че не се изненадвайте, ако от стойността на параметъра на реда се намалява.
данни Вътрешни линии са подредени в съответствие с формата (pixelFormat). За pfsbit формат е проста - всеки байт в низа съответства на един пиксел. За формати pfisbit и pfiebit пиксел съответства на два байта (16 бита в тези пакетирани данни от три канала), pf24bit - три байта (един байт на канал).
Нещо като това може да изглежда манипулатор onMouseMove събития. генериране на информация за статус площ яркост в даден момент (приемайки, че формата на растерни - 8 или 24 бита):
процедура TMainForm.ImagelMouseMove (Sender: TObject; Shift: TShiftState;
ако не и целеви (Imagel Picture.Bitmap.), след това излизане;
направя случай PixelFormat на
pfSbit: Statusbarl.SimpleText: = Формат ( "х: у: б: ... ', [X, Y, pByteArray (ScanLine [Y]) ^ [х]]);
pf24bit: Statusbarl.SimpleText: = Формат ( "х :. Y :. R:., G., В :. ',
[X, Y, pByteArray (ScanLine [Y]) L [3 * х] pByteArray (ScanLine [Y]) = [3 * х + L], pByteArray (ScanLine [Y]) = [3 * х + 2] ]);
Излишно стойност ScanLine собственост, не може да се променя (това е само за четене). Но можете да промените данните, до които тя точки. Ето как можете да получите отрицателна 24-битови изображения:
Var линия. pByteArray;
Защото: = 0 до Imagel.Picture.Bitmap.Height - 1 направи
За J: = 0 до Imagel.Picture.Bitmap.Width * 3 - 1 направи
Линия ^ [й]: = 255 - Линия ^ [й];
В Делфи, можете да се изправи пред "съименник" на обекта - структурата TBitmap. WINDOWS.PAS описано във файла. Тъй като и двете принадлежат към един и същ домейн, често има конфликти, които водят до грешки. Припомнете си, за да се разграничат синоними структура, трябва да използвате името на модула, в която са описани. Така че, ако вашата програма има модул на Windows и графика, като са описани видовете напитка Windows.TBitmap И Graphics.TBitmap.
Var CardsDll. THandle;
CardsDll: = LoadLibraryEx ( "cards.dll", 0, LOAD_LIBRARY__AS_DATAFILE);
Също така, можете да изтеглите битмапите за цялата палуба. Когато показване на карти, в зависимост от това дали е отворен или затворен, съставен един TBitmap обект.
ако е известно тогава // отворена карта
Новини
Knights етер теория
Това Корнилов написа на страницата си в социалната мрежа.
Според Корнилов, тогава посланието му беше посрещната с недоверие.
Сега Владимир Корнилов реши да се върне към този въпрос, във връзка с които публикува в Моята страница във Фейсбук снимки мистериозни израелци, които взеха участие в клането в Одеса.
Сред многото въпроси, които Корнилов, каза той, биха искали да получите отговор, например, са както следва:
"Защо са случайно отиде в Одеса с медицинско оборудване, гумени ръкавици, ако са знаели предварително, че ще бъде ранен и убит? Или защо този боец изведнъж забравили английски, когато разбра, че досието му? ".
Езера, морета и океани от северните --------- lushariya върти обратно на часовниковата стрелка Lc m - р-в-к-и, и водата в южната polushariya - RA - проводим разтваря -sya- зало- ч ас стрелка - Obra-zuya- -Oral-мравка-ски-е-ово-вода компания.
Основната причина за водовъртежите на въртене са местен вятър.
Колкото по-висока скорост на вятъра по-висока скорост на въртене на водовъртежи и като следствие, по-високи водовъртежи центробежната сила, като по този начин увеличаване на нивото на водата на морета и океани.
И толкова по-ниска центробежната сила от водовъртежи, толкова по-ниско нивото на водата в моретата и океаните.
скорост на потока по периметъра на моретата и океаните не е същото навсякъде и зависи от дълбочината на брега. В плитка част на скоростта на морските течения се увеличава, а в дълбоката част на морето се намалява.
Сезонни колебания в нивото на водата часовник-tsya не около бреговете на моретата и океаните-те, но само в тези брегове, където -висока ъгловата скорост на потоците и следователно висока центробежната сила на водата. (Центробежната сила F В = V / R).
През прави брегове, където течения нямат никаква ъглова скорост ниво на водата не се покачва.