BPC2E POČÍTAČOVÉ CVIČENÍ 1



Podobné dokumenty
MS Word 2007 REVIZE DOKUMENTU A KOMENTÁŘE

Výrazy lze též zavést v nečíselných oborech, pak konstanty označuji jeden určitý prvek a obor proměnné není množina čísel.

Ozobot aktivita lov velikonočních vajíček

Asymptoty grafu funkce

Business Contact Manager Správa kontaktů pro tisk štítků

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

(k 1)x k + 1. pro k 1 a x = 0 pro k = 1.

Vítězslav Bártl. prosinec 2013

MODEL MOSTU. Ing.Jiřina Strnadová. Evropský sociální fond Praha a EU Investujeme do vaší budoucnosti. Předmět:Fyzika

Jan Březina. Technical University of Liberec. 17. března 2015

2.1. Pojem funkce a její vlastnosti. Reálná funkce f jedné reálné proměnné x je taková

Fyzikální praktikum 3 - úloha 7

titul před titul za rodné číslo datum narození (nebylo-li přiděleno rodné číslo)

Uživatelský manuál k instalaci a aktivaci systému BUILDpower S

František Hudek. červen ročník. Nastavení myši, místní a jazykové nastavení.

Pokusy s kolem na hřídeli (experimenty s výpočty)

Poruchy modul pro rychlé hlášení poruch z provozu.

AMU1 Monitorování bezpečného života letounu (RYCHLÝ PŘEHLED)

Novinky verze ArCon 14 Small Business

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1. Podpora digitalizace a využití ICT na SPŠ CZ.1.07/1.5.00/34.

Konverze textových formátů

ÚVOD DO HRY PRINCIP HRY

DUM 02 téma: Formáty souborů rastrové grafiky

2.6.4 Lineární lomené funkce s absolutní hodnotou

Přechodové jevy, osciloskop

MATERIÁL NA JEDNÁNÍ Zastupitelstva města Doksy

Operační program Rybářství

Struktura dat zasílaných provozovatelem distribuční soustavy pro účely vyúčtování služby distribuce elektřiny

Obsah 1. Grafický manuál firmy 2. Podklady grafického manuálu 3. Varianty loga 4. Logo a logotyp

Novinky v programu Majetek 2.06

B Kvantitativní test. Semestrální práce TUR. Novotný Michal

Goniometrie trigonometrie

Příručka pro práci s dataloggerem Labquest 2. Zapínání a domácí obrazovka

M-10. AU = astronomická jednotka = vzdálenost Země-Slunce = přibližně 150 mil. km. V následující tabulce je závislost doby

Lineární algebra. Vektorové prostory

Rychlé vyrovnávací paměti (cache)

Projekty PPP vní aspekty. Martin Vacek, advokát PETERKA & PARTNERS v.o.s. Praha, Bratislava

PRŮVODCE PRAVIDLY PUBLICITY v projektech spolufinancovaných z Integrovaného operačního programu.

Komunikační protokol

Účetní případ MD D DOTACE OD ZŘIZOVATELE. Neinvestiční dotace (1/12, čtvrtletní platby, mimořádné platby) předpis x úhrada

SILNIČNÍ DAŇ U OSOBNÍCH AUTOMOBILŮ

DUM téma: Výklad k sadě

Pocasicz.cz / pocasiesk.sk - zadání výroby

Návod ke stažení a instalaci bodů zájmu do navigace TomTom řady Via a Go100x

Kódování rastrových obrázků

Manuál pro WebRSD. verze 2.0 z

7. Silně zakřivený prut

Ž Á D O S T O POSKYTNUTÍ NEINVESTIČNÍ DOTACE Z ROZPOČTU MORAVSKOSLEZSKÉHO KRAJE 2016/2017 OBECNÁ ČÁST

Matrika otázky a odpovědi Vidimace částečné listiny. Ing. Markéta Hofschneiderová Eva Vepřková

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Univerzita Tomáše Bati ve Zlíně

Definice z = f(x,y) vázané podmínkou g(x,y) = 0 jsou z geometrického hlediska lokálními extrémy prostorové křivky k, Obr Obr. 6.2.

NÁZEV ŠKOLY: Střední odborné učiliště, Domažlice, Prokopa Velikého 640. V/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

DUM 06 téma: Náležitosti výkresu sestavení

Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY

Návod na sestavení naháněcí ohrady

Hřídelové čepy. Podle tvaru, funkce a použití rozeznáváme hřídelové čepy: a) válcové b) kuželové c) prstencové d) kulové e) patní

Vzdělávací obor: Prvouka

Adresa příslušného úřadu: ČÁST A

Zvyšování kvality výuky technických oborů

MĚŘENÍ CHARAKTERISTIK FOTOVOLTAICKÉHO MODULU VLIV ZASTÍNĚNÍ

UŽITÍ DERIVACÍ, PRŮBĚH FUNKCE

VY_62_INOVACE_VK53. Datum (období), ve kterém byl VM vytvořen Květen 2012 Ročník, pro který je VM určen

Želva se nachází v tzv. grafickém okně (zviditelníme ji klávesou +), v němž jsou vidět i čáry, které nakreslila.

Název projektu: Spokojená škola Číslo projektu: OPVK.CZ.1.07/1.2.33/ Metodické pokyny k pracovnímu listu č. 1 Význam slov

ZADÁNÍ: ÚVOD: SCHÉMA:

Struktury a obsah výstupních zpráv pro MultiCash ČSOB

Porada krajských úřadů, magistrátů měst Brna, Ostravy a Plzně a Magistrátu hl. m. Prahy. Praha, 11. června 2012

VYHLÁŠKA. číslo 1/2004 O POUŽITÍ SYMBOLŮ MĚSTA, ČESTNÉM OBČANSTVÍ A CENÁCH MĚSTA. Část I. Článek I. Článek II. Města Mělníka, okres Mělník

BEZDOTYKOVÝ OTÁČKOMĚR DM-2234B

POSTUP TVORBY DOKUMENTU základní funkce. Osnova. Vložení textu

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jana Kalinová [ÚLOHA 01 ÚVOD DO PROSTŘEDÍ OBJEMOVÁ SOUČÁST; PŘÍKAZ SKICA A JEJÍ VAZBENÍ]

Narození mimo zdravotnická zařízení. Births out of health establishment

DMX512 PC Control Stručný návod k použití programu Verze 1.0 Copyright 2007 Dokumentace: Ing. Jaroslav Nušl

Inovace a zkvalitnění výuky prostřednictvím ICT VY_32_INOVACE_ INF.5.61 až 80

ISŠT Mělník. Integrovaná střední škola technická Mělník, K učilišti 2566, Mělník Ing.František Moravec

TECHNICKÁ UNIVERZITA V LIBERCI

Pixely, barevné palety a rozptylování barev

1 Měření kapacity kondenzátorů

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

TRANSFORMACE. Verze 4.0

Programování a počítače 2 Počítačová cvičení pro obor B-EST

NÁVOD NA PŘIHLÁŠENÍ DO INTERNETOVÉHO BANKOVNICTVÍ PRO SPRÁVU KREDITNÍ KARTY

Modul: Cvičebnice programování ISO - soustruh

Jak udělat simulační studii z minulého čísla?

Numerická integrace. 6. listopadu 2012

Posouzení únosnosti svaru se provádí podle zásad pružnosti a pevnosti v nebezpečném průřezu.

Funkce Vypracovala: Mgr. Zuzana Kopečková

STŘEDNÍ ODBORNÁ ŠKOLA PODNIKATELSKÁ PROFIT, SPOL. S R. O.

Rozšířená nastavení. Kapitola 4

Spojky NPX. Z tabulky 1 na str. 247, vyberte koeficient provozu, který je vhodný pro pou ití

Nové formuláře. Kolektiv ASEP Knihovna AV ČR, v. v. i. Zeleně upraveno

Karty externích médií

ECB-PUBLIC ROZHODNUTÍ EVROPSKÉ CENTRÁLNÍ BANKY (EU) 2015/[XX*] ze dne 10. dubna 2015 (ECB/2015/17)

Změnu DPH na kartách a v ceníku prací lze provést i v jednotlivých modulech.

Datamax I-Class - stručný návod k použití

Věty o pravoúhlém trojúhelníku. Vztahy pro výpočet obvodu a obsahu. Eukleidova věta o výšce. Druhá mocnina výšky k přeponě je rovna součinu

Sekvenční obvody. S R Q(t+1) 0 0? Q(t)

Návod k obsluze programu ERVE4

Transkript:

BPC2E POČÍTAČOVÉ CVIČENÍ 1 Cílem je seznámit se s programováním binárních souborů, v případě tohoto cvičení pak s bitmapovými obrázky. Úloha A. Pro tuto úlohu je připraven zdrojový kódu programu k příkladu souboru bpc2e_c1a.c, kde je připravena kompletní úloha, která vygeneruje nekompresovaný bitmapový obrázek (viz obr. 1.1). Na začátku programu jsou kompletně připraveny potřebné hlavičky pro BMP soubory s plným 24bitovým rozlišení barev (RGB barvy po 8 bitech) bez komprese. Název položky bftype bfsize bfreserved1 bfreserved2 bfoffbits Tab 1.1. Definice proměnných struktury BITMAPFILEHEADER. Délka položky Význam Identifikátor formátu BMP. Aktuální verze formátu BMP zde obsahuje ASCII kód znaků "BM", tj. 0 42 a 0 4D. Celková velikost souboru s obrazovými údaji. Některé aplikace tuto položku ignorují a dosazují zde nulu. Rezerva pro pozdější použití. V současné verzi formátu BMP zde musí být uložena nulová hodnota. Rezerva pro pozdější použití. V současné verzi formátu BMP zde musí být uložena nulová hodnota. Posun struktury BITMAPFILEHEADER od začátku vlastních obrazových dat. Název položky Tab 1.2. Definice proměnných struktury BITMAPINFOHEADER. Délka položky Význam bisize Celková velikost datové struktury BITMAPINFOHEADER biwidth Šířku obrázku v pixelech biheight Výšku obrázku v pixelech biplanes Počet bitových rovin pro výstupní zařízení. V BMP vždy hodnota 1. Položka existuje z historických důvodů. Celkový počet bitů na pixel. Podle počtu barev zde mohou být bibitcount hodnoty 1, 4, 8 nebo 24 (to odpovídá postupně 2, 16, 256ti barvám popř. plnobarevnému režimu). bicompression Typ komprimační metody obrazových dat. Musí být nastavené na jednu z hodnot: 0 (BI_RGB), 1 (BI_RLE8) nebo 2 (BI_RLE4). bisizeimage Velikost obrazu v bytech. Pokud je bitmapa nekomprimovaná, může zde být nulová hodnota, protože ji je možno vypočítat z rozměrů obrázků a počtu bitů na pixel. bixpelspermete r biypelspermete r biclrused biclrimportant Horizontální rozlišení výstupního zařízení v pixelech na metr. Většina aplikací nemá potřebné informace o výstupním zařízení, a proto do této položky vkládá hodnotu 0. Vertikální rozlišení výstupního zařízení v pixelech na metr. Většina aplikací nemá potřebné informace o výstupním zařízení, a proto do této položky vkládá hodnotu 0. Celkový počet barev, které jsou použité v dané bitmapě. Jestliže je tato hodnota nastavena na nulu, bitmapa používá maximální počet barev. Počet barev, které jsou důležité pro vykreslení bitmapy. Pokud je tato hodnota nulová, jsou všechny barvy důležité. Tento údaj je používán při zobrazování na zařízeních, které mají omezený počet současně zobrazitelných barev. Pro definici parametrů obrázku v hlavičkách souboru jsou využity předdefinované struktury BITMAPFILEHEADER a BITMAPINFOHEADER z knihovny windows.h. Popis jednotlivých

proměnných těchto struktur je uveden v tabulkách 1.1 a 1.2. Jediný parametr obrázku, který je třeba nastavit je šířka a výška v pixelech pomocí maker WIDTH a HEIGHT: //size of picture definition #define WIDTH 512 #define HEIGHT 512 Ostatní položky struktur jsou již předdefinovány, pro BITMAPFILEHEADER: bmp_fh.bftype = 19778; // BITMAPFILEHEADER specification bmp_fh.bfsize = WIDTH * HEIGHT * 3 + 54; bmp_fh.bfreserved1 = 0; bmp_fh.bfreserved2 = 0; bmp_fh.bfoffbits = 54; i pro BITMAPINFOHEADER: bmp_ih.bisize = 40; // BITMAPINFOHEADER specification bmp_ih.biwidth = WIDTH; bmp_ih.biheight = HEIGHT; bmp_ih.biplanes = 1; bmp_ih.bibitcount = 24; bmp_ih.bicompression = 0; bmp_ih.bisizeimage = WIDTH * HEIGHT * 3; bmp_ih.bixpelspermeter = 0; bmp_ih.biypelspermeter = 0; bmp_ih.biclrused = 0; bmp_ih.biclrimportant = 0; Hlavičky jsou následně ve správném pořadí nahrány do souboru test.bmp.pomocí funkce fwrite(): fwrite(&bmp_fh, sizeof(bmp_fh), 1, fbmp); //write BITMAPFILEHEADER fwrite(&bmp_ih, sizeof(bmp_ih), 1, fbmp); //write BITMAPINFOHEADER V poslední části programu jsou ve dvou vnořených cyklech definovány barvy jednotlivých pixelů a nahrávány do souboru. Pixelová data jsou BMP dvacetičtyřbitovém souboru nahrávána v pořadí RGB (každá barva má 1 byte, a její úroveň od 0 do 255 jako unsigned char) a to postupně po řádcích od levého dolního rohu po pravý horní roh. Každý pixel je definován tripletem těchto úrovní pro červenou, zelenou a modrou složku barvy pixelu. Tento triplet je shrnut ve struktuře bmp_rgb typu RGBTRIPLE. Ve vnořených cyklech se postupně definují a ukládají opět pomocí funkce fwrite() jednotlivé pixely. V příkladu je vidět, že složka červené a modré je vždy nulová, zatímco úroveň zelené barvy je závislá na poloze pixelu. Výsledkem je tedy obrázek s měnící se úrovní zelené barvy od levého dolního rohu po pravý horní roh (viz. obr. 1.1), protože hodnota úrovně zelené barvy je přímo úměrně závislá na součtu indexů řádku a sloupce pro daný pixel: //part for bitmap content definition for(h = 0; h < HEIGHT; h++) //rows in bitmaps from bottom to top { for (v = 0; v < WIDTH; v++) //columns in bitmaps from left to right { bmp_rgb.rgbtred = 0x00; bmp_rgb.rgbtgreen = (h+v)%256; bmp_rgb.rgbtblue = 0x00; fwrite(&bmp_rgb, sizeof(bmp_rgb), 1, fbmp); Tzn., že všechny pixely, kde součet h+v je konstantní budou mít stejnou barvu. Pochopitelně je třeba omezit úroveň barvy na rozsah 0 až 255, což lze provést snadno operací zbytku po celočíselném dělení 256. Zkuste pro začátek vymyslet jiný vztah pro výpočet úrovně zelené barvy pixelu, např. při aplikaci bmp_rgb.rgbtgreen = (h+v)%256; bmp_rgb.rgbtblue = 0x00; fwrite(&bmp_rgb, sizeof(bmp_rgb), 1, fbmp);

Pokud například pro výpočet úrovně zelené úrovně použijte následující vztah: bmp_rgb.rgbtgreen = (cos(2*6.28*v/(1.0*width))+1)*127; získáte krásnou fotografii svislých trubek včetně jasového přechodu do stínu (viz. obr. 1.2). Zkuste zapřemýšlet proč? Nezapomeňte na přilinkování knihovny math.h. Vaším samostatným úkolem je upravit právě část kódu pro definici pixelů obrázku tak, aby výsledkem byl obrázek podle obr. 1.3. Hodnocení: 1,5 bodu. Obr. 1.1. Výsledný bitmapový obrázek podle vzoru z příkladu A. Obr. 1.2. Výsledný experimentální obrázek při aplikaci funkce kosinus.

Obr. 1.3. Požadovaný výsledný bitmapový obrázek pro příklad A. Úloha B. Zadáno cvičícím na začátku cvičení. Hodnocení: 1,5 bodu. Bonusová úloha Pro nadšené programátory i další zájemce je tu opět připravená bonusová úloha. V souboru TPR.bmp je uložen výřez terénního reliéfu jistého území v 256 úrovních šedi od černé definující nejnižší výškovou hladinu až po bílou definující nejvyšší výškovou hladinu. Cílem úlohy je sestavit program, který pro definovanou hladinu moře vygeneruje nový obrázek mapy souše a moře. Souše může být definována zelenou barvou, moře logicky modrou barvou. Číselným parametr hladiny moře v rozsahu 0 až 255 nechť je argumentem při spouštění programu. Parametrem může být také jméno výstupního BMP souboru. Terénní reliéf ve stupních šedi je na obrázku 1.4, příklad výsledné BMP mapy souše a moře je pro daný reliéf a hladinu moře 80 na obrázku 1.5. Obr. 1.4. Terénní reliéf v úrovních šedi.

Obr. 1.5. Vygenerovaná mapa souše a moře pro hladinu moře 80.