Bitmaps SPRÁVCE BITMAP A POMOCNÉ FUNKCE PRO PRÁCI S BITMAPAMI. Příručka uživatele a programátora

Podobné dokumenty
LZ77 KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU LZ77. Příručka uživatele a programátora

uioflex JEDNOTKA PRO KONFIGURACI DESKY IOFLEX01 Příručka uživatele a programátora

TKeypad KNIHOVNY DEFINIC KLÁVESNIC PRO TERMINÁLY TOUCH. Příručka uživatele a programátora

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora

umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora

udspt10r JEDNOTKA IMPLEMENTUJÍCÍ DISPLEJ VZDÁLENÉ VARIANTY TERMINÁLU TERM10 Příručka uživatele a programátora

uioct01 JEDNOTKA PRO MĚŘENÍ FREKVENCE (OTÁČEK) DESKOU IOCT01 Příručka uživatele a programátora

usimt03 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM03 NA PC Příručka uživatele a programátora

TEDrv OVLADAČE KLÁVESNICE, MYŠI A DISPLEJE EMULÁTORU TERMINÁLU PRO MS WINDOWS. Příručka uživatele a programátora

usimt03r JEDNOTKA PRO SIMULACI VZDÁLENÉ VARIANTY TERMINÁLU TERM03 NA POČÍTAČI PC Příručka uživatele a programátora

uioadda1 JEDNOTKA PRO OVLÁDÁNÍ DESEK IOADDA01, IOADDA02 A IODA01 Příručka uživatele a programátora

DiskIO JEDNOTKA PRO PRÁCI S RAM, ROM A FLASH DISKY. Příručka uživatele a programátora

usimt01 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM01 NA PC Příručka uživatele a programátora

uflx2pos JEDNOTKA PRO PRÁCI S INKREMENTÁLNÍMI ČIDLY V DESCE IOFLEX02 Příručka uživatele a programátora

usimt10 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM10 NA PC Příručka uživatele a programátora

uterm03r JEDNOTKA IMPLEMETUJÍCÍ VZDÁLENÝ TERMINÁL TERM03 Příručka uživatele a programátora

upct01 SIMULÁTOR TERMINÁLU TERM01 NA POČÍTAČI PC Příručka uživatele a programátora

urtotemp JEDNOTKA PRO PŘEVODY ODPORU ČIDLA NA TEPLOTU Příručka uživatele a programátora

Nastavení konstant regulátoru PID

ucomm JEDNOTKA ZPROSTŘEDKOVÁVAJÍCÍ SLUŽBY BIOSU KITV40 PRO SÉRIOVOU KOMUNIKACI Příručka uživatele a programátora

LibVUtils UTILITY PRO BALÍK KNIHOVEN LIBV. Příručka uživatele a programátora

G240x128 a G128x64 JEDNOTKY IMPLEMENTUJÍCÍ GRAFICKÉ OPERACE VE VIDEOPAMĚTI. Příručka uživatele a programátora

COUDP KNIHOVNA PROTOKOLU UDP. Příručka uživatele a programátora

Software pro grafické terminály TERM10 a TERM03

utermchr JEDNOTKA PRO PRÁCI SE ZNAKOVÝM TERMINÁLEM Příručka uživatele a programátora

uaterm JEDNOTKA PRO PRÁCI S ABSTRAKTNÍM TERMINÁLEM Příručka uživatele a programátora

LdrLib KNIHOVNY PRO TVORBU ZAVADĚČE (LOADERU) ŘÍDICÍCH APLIKACÍ. Příručka uživatele a programátora

Fonts SPRÁVCE FONTŮ A POMOCNÉ FUNKCE PRO PRÁCI S FONTY. Příručka uživatele a programátora

NumToStr JEDNOTKA PRO PŘEVODY ČÍSEL, DATUMU A ČASU A JINÝCH DATOVÝCH STRUKTUR NA ŘETĚZCE A ZPĚT. Příručka uživatele a programátora

Sada 1 - Základy programování

Termíny a definice TERMÍNY A DEFINICE POUŽÍVANÉ V MANUÁLECH FIRMY SOFCON. Příručka uživatele a programátora

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Datové typy a struktury

Adobe Photoshop 18. Ukládání dokumentu formáty

CAD II přednáška č. 5. Grafické formáty PCX GIF TIFF BMP

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Odvozené a strukturované typy dat

Začínáme s OS FreeDos na Kit188ER

Reliance 3 design OBSAH

09. Memory management. ZOS 2006, L.Pešička

Struktura programu v době běhu

Adobe Photoshop. 1. Seznámení s programem. 1. Seznámení s programem. XMF, montážní program. Tomáš Fab. Vytvořila: Bc. Blažena Kondelíková

Popis funkcí a parametrů programu. Reliance External communicator. Verze 1.5.0

JRm verze Aplikace. Instalace. Ovládání

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

NMIN102 Programování /2 Z, Zk

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA

45 Plánovací kalendář

ALGORITMIZACE A PROGRAMOVÁNÍ

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

IUJCE 07/08 Přednáška č. 6

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC

Popis funkcí exportovaných z knihovny nddbe.dll

Programování v C++, 2. cvičení

Třídy a struktury v C++

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Práce s textovými proměnnými v DetStudiu

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

Sada 1 - Základy programování

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Příručka uživatele HELPDESK GEOVAP

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

NAPOJENÍ ZAŘÍZENÍ S KOMUNIKACÍ BELIMO MP-BUS NA SÍŤ AUTOMATŮ MICROPEL

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

Sdílení dat mezi podprogramy

Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

Abstraktní datové typy FRONTA

Systém souborů (file system, FS)

POPIS NOVINEK A VYLEPŠENÍ

Základy programování (IZP)

programátorský manuál

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

PA152. Implementace databázových systémů

OpenOffice Writer, zkratkové klávesy (výběr) Vytvořil: Mgr. et Mgr. Martin Hladký, Ph.D. Datum: 9. ledna

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Zdroj:

Předmět: Algoritmizace praktické aplikace

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Algoritmizace prostorových úloh

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620

Elementární datové typy

REGISTRACE UŽIVATELE

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3

Knihovna WebGraphLib

DATABÁZE MS ACCESS 2010

Základy programování (IZP)

8 Třídy, objekty, metody, předávání argumentů metod

Alternativní použití analogových vstupů

POKYNY K REGISTRACI PROFILU ZADAVATELE

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

CZ.1.07/1.5.00/

Knihovna EpsnetLib TXV první vydání září 2012 změny vyhrazeny

KMI / TMA Tvorba mobilních aplikací

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Transkript:

SPRÁVCE BITMAP A POMOCNÉ FUNKCE PRO PRÁCI S BITMAPAMI Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz Verze dokumentu 1.20

Informace v tomto dokumentu byly pečlivě zkontrolovány a SofCon věří, že jsou spolehlivé, přesto SofCon nenese odpovědnost za případné nepřesnosti nebo nesprávnosti zde uvedených informací. SofCon negarantuje bezchybnost tohoto dokumentu ani programového vybavení, které je v tomto dokumentu popsané. Uživatel přebírá informace z tohoto dokumentu a odpovídající programové vybavení ve stavu, jak byly vytvořeny a sám je povinen provést validaci bezchybnosti produktu, který s použitím zde popsaného programového vybavení vytvořil. SofCon si vyhrazuje právo změny obsahu tohoto dokumentu bez předchozího oznámení a nenese žádnou odpovědnost za důsledky, které z toho mohou vyplynout pro uživatele. Datum vydání: 23.09.2005 Datum posledního uložení dokumentu: 23.09.2005 (Datum vydání a posledního uložení dokumentu musí být stejné) Upozornění: V dokumentu použité názvy výrobků, firem apod. mohou být ochrannými známkami nebo registrovanými ochrannými známkami příslušných vlastníků. Copyright 2005, SofCon spol. s r.o., Petr Černín

Obsah : 1. O dokumentu 4 1.1. Revize dokumentu 4 1.2. Účel dokumentu 4 1.3. Rozsah platnosti 4 1.4. Související dokumenty 4 2. Termíny a definice 4 3. Úvod 5 3.1. Účel knihovny 5 4. Reference 5 4.1. Konstanty 5 4.1.1. Konstanty bid_ 5 4.1.2. Konstanty bf_ 6 4.2. Typy 6 4.2.1. Struktura dat bitmapy 6 4.2.1.1. Struktura TBitmap 7 4.3. Funkce 7 4.3.1. Procedura RegisterStdBitmap 7 4.3.2. Funkce GetStdBitmap 8 4.3.3. Funkce NewBitmap 8 4.3.4. Funkce FreeBitmap 9 4.3.5. Funkce GetBitmapSize 9 4.3.6. Funkce GetBitmapRowSize 10 4.3.7. Funkce GetBitmapData 10 4.3.8. Funkce DecompressBitmap 10 4.3.9. Funkce RegisterStdBitmapFile 11

1. O dokumentu 1.1. Revize dokumentu Verze dokumentu Verze SW Autor Datum vydání 1.10 1.XX Cr 21.01.2004 První vydání Popis změn 1.20 5.XX Net 23.09.2005 Přidána funkce RegisterStdBitmapFile 1.2. Účel dokumentu Tento dokument slouží jako popis knihovny, která je součástí balíku vizualizačních knihoven pro jednotku KIT. 1.3. Rozsah platnosti Určen pro programátory a uživatele programového vybavení SofCon. 1.4. Související dokumenty Pro čtení tohoto dokumentu není potřeba číst žádný další manuál, ale je potřeba orientovat se v používání programového vybavení SofCon. Popis formátu verze knihovny a souvisejících funkcí je popsán v manuálu LibVer. 2. Termíny a definice Používané termíny a definice jsou popsány v samostatném dokumentu Termíny a definice. file:bitmaps.doc, 23.09.2005 v1.20 4 / 11

3. Úvod 3.1. Účel knihovny Knihovna slouží jako správce standardních bitmap (tj. bitmap, které využívají standardní komponenty vizualizačního systému). Obsahuje databázi všech registrovaných bitmap pomocí funkce RegisterStdBitmap (viz. kapitola 4.3.1). Dále knihovna nabízí několik užitečných funkcí pro práci s bitmapami. 4. Reference 4.1. Konstanty 4.1.1. Konstanty bid_ Každý standardní bitmapa má přidělen jednoznačný identifikátor s prefixem bid_. Identifikátory všech standardních bitmap využívaných komponentami vizualizačního systému jsou uvedeny v následující tabulce: Identifikátor Kód Popis bitmapy bideditleftmark 1 Šipka označující u editační řádky pokračování textu vlevo bideditrightmark 2 Šipka označující u editační řádky pokračování textu vpravo bidscrollbarleft 3 Šipka posuvné lišty (doleva) bidscrollbarright 4 Šipka posuvné lišty (doprava) bidsrcollbarup 5 Šipka posuvné lišty (nahoru) bidscrollbardown 6 Šipka posuvné lišty (dolů) bidovermenusub 7 Značka podmenu bidovermenusubse l 8 Značka podmenu u vybrané položky Registrační databáze je jednoduchá indexovaná tabulka obsahující ukazatele na datovou strukturu bitmapy. Indexy do této tabulky jsou výše uvedené identifikátory. Každý bitmapa má tedy v této v tabulce jednoznačnou pozici. Pokud bitmapa není zaregistrována, je na příslušné pozici hodnota nil. K registrační databáze se přistupuje pomocí funkcí RegisterStdBitmap (viz. kapitola 4.3.1) a GetStdBitmap (viz. kapitola 4.3.2). file:bitmaps.doc, 23.09.2005 v1.20 5 / 11

Tabulka bitmap 0 1 2 3 28 29 30 31 nil nil nil nil nil Data bitmapy Data bitmapy 4.1.2. Konstanty bf_ Konstanty s prefixem bf_ definují formát uložení bitmapy. Kombinace těchto příznaků je uložena v položce Format struktury TBitmap (viz. kapitola 4.2.1.1). Identifikátor Kód Popis bfformatmask $07 Maska příznaků s prefixem bfformat_ bfformat1bpp $00 Bitmapa s jedním bitem na pixel bfformat2bpp $01 Bitmapa se dvěma bity na pixel bfformat4bpp $02 Bitmapa se čtyřmi bity na pixel bfformat8bpp $03 Bitmapa s osmi bity na pixel bftransparent $10 Transparetní bitmapa. Index transparentní barvy je uložena v položce TrColor záhlaví bitmapy. bfpalette $20 Pokud je nastaven tento příznak, pak za záhlavím následuje paleta barev. bfcompressmask $60 Maska příznaků s prefixem bfcompress_ bfcompressnone $00 Bitmapa není komprimována bfcompressrle $20 Bitmapa je komprimována algoritmem RLE bfcompresslz77 $40 Bitmapa je komprimována algoritmem LZ77 Příznaky bfformatxxx a stejně tak příznaky bfcompressxxx nelze mezi sebou kombinovat 4.2. Typy 4.2.1. Struktura dat bitmapy Data bitmapy jsou uložena v souvislé oblasti, která se skládá ze dvou nebo třech částí. Viz. následující obrázek. file:bitmaps.doc, 23.09.2005 v1.20 6 / 11

Záhlaví bitmapy TBitmap Paleta bitmapy (nepovinná) Max. 16 položek Byte Data bitmapy Paleta barev je nepovinnou součástí dat bitmapy. Pokud je paleta, je v položce Format záhlaví bitmapy nastaven příznak bfpalette. Paleta je pole bajtů (indexů), pro každou barvu je zde jeden bajt. Paletu můžou obsahovat bitmapy s 1, 2 nebo 4 bity na pixel. Bitmapy s osmi bity na pixel paletu obsahovat nesmí. 4.2.1.1. Struktura TBitmap Struktura TBitmap popisuje záhlaví bitmapy. Tato struktura se nachází vždy na začátku bitmapy. PBitmap = ^TBitmap; TBitmap = packed record Size : TPoint; { Rozmery bitmapy v pixelech } Format : Byte; { Format bitmapy - bfxxx } TrColor : Byte; { Transparentni barva (TColorRef) } Data : record end; end; Význam jednotlivých položek struktury je uveden v následující tabulce: Identifikátor Size Format TrColor Popis Rozměry bitmapy v pixelech. Formát uložení bitmapy, tj. kombinace konstant s prefixem bf_, viz. kapitola 4.1.2. Index transparentní barvy. Pixely transparentní barvy nebudou při vykreslování bitmapy ovlivňovat pozadí bitmapy. 4.3. Funkce 4.3.1. Procedura RegisterStdBitmap Procedura RegisterStdBitmap provádí registraci bitmapy v globální tabulce bitmap. procedure RegisterStdBitmap( AId: Word; : PBitmap ); file:bitmaps.doc, 23.09.2005 v1.20 7 / 11

AId Identifikátor bitmapy (viz. kapitola 4.1.1). Parametr může nabývat hodnot v rozsahu 0 až 255. Ukazatel na strukturu bitmapy. Zrušení registrace bitmapy se provede voláním funkce RegisterStdBitmap s parametrem nastaveným na hodnotu nil. 4.3.2. Funkce GetStdBitmap Funkce GetStdBitmap vrací ukazatel na strukturu bitmapy dříve zaregistrované funkcí RegisterStdBitmap. function GetStdBitmap( AId: Word ): PBitmap; AId Identifikátor bitmapy (viz. kapitola 4.1.1). Funkce vrací ukazatel na strukturu bitmapy (viz. kapitola 4.2.1.1). Pokud bitmapa specifikovaná identifikátorem AId nebyla dříve zaregistrována, pak funkce vrací hodnotu nil. 4.3.3. Funkce NewBitmap Funkce NewBitmap alokuje na hromadě prostor pro bitmapu zadaných parametrů. function NewBitmap( AFormat: Word; ASizeX, ASizeY: Integer; ATrColor: Byte; AClear: Boolean ): PBitmap; AFormat Formát bitmapy. Jedná se o kombinací příznaků s prefixem bf_ (viz. kapitola 4.1.2). ASizeX Šířka bitmapy v pixelech. Hodnota parametru musí být větší než nula. ASizeY Výška bitmapy v pixelech. Hodnota parametru musí být větší než nula. ATrColor Transparentní barva. Pokud není nastaven příznak bftransparent v parametru AFormat, je parametr ATrColor ignorován. AClear Pokud je parametr AClear nastaven na hodnotu True, jsou všechny pixely bitmapy po alokaci nastaveny na hodnotu 0 (černá barva). V opačném případě bude obsah bitmapy file:bitmaps.doc, 23.09.2005 v1.20 8 / 11

nedefinovaný. Funkce vrací ukazatel na vytvořenou bitmapu na heapu. V případě nedostatku paměti nebo neplatných parametrů funkce vrací hodnotu nil. Funkce alokuje na heapu prostor pro bitmapu zadaných rozměrů a barevné hloubky (počtu bitů na pixel). Pokud struktura bitmapy společně se záhlavím vyšla delší než je 65520 bajtů, pak funkce vrátí hodnotu nil. Bitmapu alokovanou funkcí NewBitmap lze uvolnit z paměti pomocí funkce FreeBitmap (viz. kapitola 4.3.4) 4.3.4. Funkce FreeBitmap Procedura FreeBitmap uvolňuje z paměti bitmapu alokovanou pomocí funkce NewBitmap. procedure FreeBitmap( : PBitmap ); Ukazatel na strukturu bitmapy alokované na hromadě. Parametr může mít hodnotu nil. 4.3.5. Funkce GetBitmapSize Funkce GetBitmapSize zjišťuje délku celé struktury bitmapy včetně záhlaví a palety. function GetBitmapSize( : PBitmap ): Word; Ukazatel na strukturu bitmapy. Funkce vrací délku celé struktury bitmapy včetně záhlaví a palety. Pokud má parametr hodnotu nil, nebo pokud jé záhlaví bitmapy neplatné, pak funkce vrací hodnotu nula. Funkce nevrací správnou hodnotu u komprimovaných bitmap! file:bitmaps.doc, 23.09.2005 v1.20 9 / 11

4.3.6. Funkce GetBitmapRowSize Funkce GetBitmapRowSize vrací počet bajtů na řádek bitmapy. function GetBitmapRowSize( : PBitmap ): Integer; Ukazatel na strukturu bitmapy. Funkce vrací počet bajtů na řádek bitmapy podle šířky bitmapy a počtu bitů na pixel uvedených v záhlaví bitmpay. Pokud má parametr hodnotu nil, nebo pokud jé záhlaví bitmapy neplatné, pak funkce vrací hodnotu nula. 4.3.7. Funkce GetBitmapData Funkce GetBitmapData vrací ukazatel na začátek dat bitmapy. function GetBitmapData( : PBitmap ): Pointer; Ukazatel na strukturu bitmapy. Funkce vrací ukazatel na začátek dat bitmapy. Pokud má parametr hodnotu nil, nebo pokud jé záhlaví bitmapy neplatné, pak funkce vrací hodnotu nil.. Funkce přičítá k ukazateli délku záhlaví a případnou délku palety. 4.3.8. Funkce DecompressBitmap Funkce DecompressBitmap provádí dekompresi bitmapy. function DecompressBitmap( : PBitmap ): PBitmap; Ukazatel na strukturu komprimované bitmapy. file:bitmaps.doc, 23.09.2005 v1.20 10 / 11

Funkce vrací ukazatel na dekomprimovanou bitmapu alokovanou na hromadě. Pokud má parametru hodnotu nil, pokud je struktura bitmapy poškozena, nebo dojde k chybě při dekompresi, pak funkce vrací hodnotu nil. V současné době funkce podporuje pouze bitmapy komprimované metodou LZ77. Bitmapu alokovanou funkcí DecompressBitmap lze uvolnit z paměti pomocí funkce FreeBitmap (viz. kapitola 4.3.4). 4.3.9. Funkce RegisterStdBitmapFile Funkce RegisterStdBitmapFile registruje bitmapu do globalnihí tabulky bitmap ze souboru. Bitmapa musí být menší než-li 64kB a mít 8 bitovou barevnou hloubku. procedure RegisterStdBitmapFile( AId: Word; filename:string ); AId Identifikátor bitmapy (viz. kapitola 4.1.1). Parametr může nabývat hodnot v rozsahu 0 až 255. Ukazatel na strukturu bitmapy. Zrušení registrace bitmapy se provede voláním funkce RegisterStdBitmap s parametrem nastaveným na hodnotu nil. file:bitmaps.doc, 23.09.2005 v1.20 11 / 11