public class Obrázok extends BufferedImage implements Priehľadnosť, Rozmer
Obrázok je rozšírením triedy Javy BufferedImage
nielen o funkcionalitu bežne používanú vo svete grafického robota.
Obrázok obsahuje komponent grafika, vďaka ktorému
môžeme do obrázkov priamo
kresliť.
Trieda je využiteľná v rôznych situáciách, napríklad pri vypĺňaní plátna, definícii vlastného tvaru robota a podobne. Ponúka
nástroje na zrkadlenie, zmenu svetlosti, úpravu na farebný
negatív, rozmazanie a tak ďalej.
Upozornenie: Pri úpravách obrázkov (hoci
ich vlastnými metódami, napríklad prevráťVodorovne, bledší, negatív, rozmaž a podobne) nikdy nie je spustené
automatické prekreslenie! Všetky zmeny vykonané v obrázu sa prejavia
až pri jeho najbližšom nakreslení! Následkom je napríklad i to, že
ak je obrázok použitý ako vlastný tvar niektorého robota, treba po
každej zmene (úprave priehľadnosti,
vypĺňaní,
kreslení…) zabezpečiť prekreslenie sveta.
Poznámka: Automatické prekresľovanie sveta sa pri úpravách obsahu obrázkov alebo ich vlastností ich vlastnými metódami neaktivuje napríklad i preto, že svet nemá nikdy garantované, či je stanovený obrázok niekde použitý alebo iba pasívne uložený v pamäti…)
Príklad:
Nasledujúci príklad ukazuje možné použitie triedy
Obrázok ako vlastného tvaru viacerých robotov
znázorňujúcich hodiny (hodinových robotov). Obrázok je prekresľovaný
podľa potreby. Takéto použitie je v tomto prípade efektívnejšie,
pretože prekresľovanie tvaru je vykonávané len v prípade potreby
(v tomto prípade každú minútu) a prekreslený tvar dokáže využiť
množstvo robotov naraz.
Príklad obsahuje aj možnosť zobrazenia na celej obrazovke. Tá je
pred zrakom Javy zakrytá komentármi označenými dvojitou mriežkou:
// ##. Po odstránení všetkých takto označených znakov
komentárov (vrátane znakov dvojitej mriežky) bude príklad fungovať
v režime celej obrazovky.
importknižnica.*;importjava.util.Calendar;publicclassObrázokAkoTvarextendsGRobot{// Spoločná inštancia obrázka, ktorá bude tvoriť vlastný tvar// hodinových robotov.privatefinalstaticObrázoktvarHodín =newObrázok(50,50);// Atribúty uchovávajúce starý a nový čas. Ak bude zistená zmena,// čo bude každú minútu, tak budú hodiny prekreslené.privateinthodina0 =0, minúta0 =0, hodina1 = -1, minúta1 = -1;// Nebolo by efektívne overovať hodnoty času niekoľko ráz za sekundu,// preto je tu toto počítadlo, ktoré spôsobí, že overenie hodnôt času// bude vykonané raz za minútu.privateintoverČasPo = -1;// ## private static int zariadenie = 0;
// Súkromná trieda hodín.privatestaticclassHodinyextendsGRobot{// Konštruktor, ktorý nastaví všetkým hodinám rovnaké parametre// a náhodnú individuálnu rýchlosť.privateHodiny() {zdvihniPero();vlastnýTvar(tvarHodín);náhodnáPoloha(); novýCieľ();gyroskop(90.0);rýchlosť(Svet.náhodnéReálneČíslo(1.5,3.5),false); }// Nový cieľ je nastavený na začiatku a potom vždy po dosiahnutí// starého cieľa.privatevoidnovýCieľ() {Bodštart =poloha();náhodnáPoloha();Bodcieľ =poloha();skočNa(štart);cieľ(cieľ);kružnica(); }// Reakcia na dosiahnutie cieľa hodinami.@OverridepublicvoiddosiahnutieCieľa() { novýCieľ(); } }
// Konštruktor hlavného robota. Sú v ňom vykonané potrebné nastavenia// a vytvorené hodinové roboty.privateObrázokAkoTvar() {// ## super(Svet.šírkaZariadenia(zariadenie),// ## Svet.výškaZariadenia(zariadenie));// ## Svet.celáObrazovka(zariadenie);Svet.nekresli();Svet.farbaPozadia(čierna);kresliDoObrázka(tvarHodín);skry();veľkosť(22.0);hrúbkaČiary(2.2);farba(svetlotyrkysová);for(inti =0; i <50; ++i)newHodiny();Svet.spustiČasovač(); }// Zistenie nových hodnôt času. Metóda používa triedu Javy Calendar.privatevoiddajČas() {Calendarteraz =Calendar.getInstance(); hodina0 = teraz.get(Calendar.HOUR); minúta0 = teraz.get(Calendar.MINUTE); }// Metóda slúžiaca na nakreslenie tvaru hodín. Kreslenie je vykonané len// v prípade, že sa hodnoty času zmenili, pričom hodnoty časových údajov// sú overované každú minútu.privatevoidnakresliHodiny() {// Hodnota času je overovaná každú minútu. Predvolená hodnota// časovača je 40 ms, to je 25 ráz za sekundu, preto je čas overený// každých 1 500 tikov.if(0== ++overČasPo %1500) dajČas();// Kreslenie je vykonané len v prípade, že sa hodnoty času zmenili.if(hodina1 != hodina0 || minúta1 != minúta0) {// Vymazanie starého tvaru hodín.tvarHodín.vymaž();// Uloženie aktuálnej farby hlavného robota – tá bude použitá// na nakreslenie hodín.Farbafarba =farba();domov();// Farba pozadia sveta je použitá na vyplnenie tvaru hodín.farba(Svet.farbaPozadia());kruh();// Nakreslenie kružnice uloženou farbou.farba(farba);kružnica();// Nakreslenie štyroch značiek hodín – na 12., 3., 6. a 9. hodine.for(inti =0; i <4; ++i) {zdvihniPero();dopredu(veľkosť() *0.8);položPero();dopredu(veľkosť() *0.2);zdvihniPero();dozadu(veľkosť());doprava(90); }položPero();// Nakreslenie hodinovej ručičky.domov();smer(90-30* hodina0 -0.5* minúta0);dopredu(veľkosť() *0.5);// Nakreslenie minútovej ručičky.domov();smer(90-6* minúta0);dopredu(veľkosť() *0.9);// Synchronizácia hodnôt času – ďalšia zmena nastane o minútu.hodina1 = hodina0; minúta1 = minúta0; } }// Reakcia na tik časovača. Prekresľuje tvar hodín a svet (obidvoje len// ak je to potrebné).@Overridepublicvoidtik() { nakresliHodiny();if(Svet.neboloPrekreslené())Svet.prekresli(); }// Hlavná metóda.publicstaticvoidmain(String... args) {Svet.použiKonfiguráciu("obrazok-ako-vlastny-tvar.cfg");// ## if (Svet.početZariadení() > 1) ++zariadenie;newObrázokAkoTvar(); } }
Výsledok:

Na ploche
plátna sa bude pohybovať niekoľko „hodinových robotov.“
Svet.priečinokObrázkov(String)| Modifikátor a typ | Atribút a opis |
|---|---|
Graphics2D |
grafika
Grafika obrázka (pre potreby kreslenia do obrázka).
|
int |
sirka
Šírka obrázka.
|
int |
šírka
Šírka obrázka.
|
int |
vyska
Výška obrázka.
|
int |
výška
Výška obrázka.
|
TYPE_3BYTE_BGR, TYPE_4BYTE_ABGR, TYPE_4BYTE_ABGR_PRE, TYPE_BYTE_BINARY, TYPE_BYTE_GRAY, TYPE_BYTE_INDEXED, TYPE_CUSTOM, TYPE_INT_ARGB, TYPE_INT_ARGB_PRE, TYPE_INT_BGR, TYPE_INT_RGB, TYPE_USHORT_555_RGB, TYPE_USHORT_565_RGB, TYPE_USHORT_GRAYaccelerationPriority, SCALE_AREA_AVERAGING, SCALE_DEFAULT, SCALE_FAST, SCALE_REPLICATE, SCALE_SMOOTH, UndefinedPropertyNEPRIEHLADNA, NEPRIEHĽADNÁ, NEPRIEHLADNE, NEPRIEHĽADNÉ, NEPRIEHLADNY, NEPRIEHĽADNÝ, NEVIDITELNA, NEVIDITEĽNÁ, NEVIDITELNE, NEVIDITEĽNÉ, NEVIDITELNY, NEVIDITEĽNÝBITMASK, OPAQUE, TRANSLUCENT| Konštruktor a opis |
|---|
Obrázok()
Predvolený konštruktor.
|
Obrázok(Image obrázok)
Vytvorí nový obrázok podľa zadaného obrázka ako predlohy.
|
Obrázok(int šírka,
int výška)
Konštruktor, ktorý vytvorí nový prázdny obrázok so zadanými
rozmermi (v bodoch).
|
| Modifikátor a typ | Metóda a opis |
|---|---|
boolean |
animujeSa()
Zistí, či je práve spustená animácia obrázka.
|
void |
bledsi()
Alias pre bledší. |
void |
bledsi(double faktor)
Alias pre bledší. |
void |
bledší()
Zvýši úroveň svetlosti tohto obrázka.
|
void |
bledší(double faktor)
Zvýši úroveň svetlosti tohto obrázka.
|
void |
ciernobiely()
Alias pre čiernobiely. |
void |
ciernobiely(boolean vyvážiťZložky)
Alias pre čiernobiely. |
void |
ciernobiely(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Alias pre čiernobiely. |
static Obrazok |
citaj(Archív archív,
String názovPoložky)
Alias pre čítaj. |
static Obrazok |
citaj(String súbor)
Alias pre čítaj. |
void |
čiernobiely()
Upraví tento obrázok do odtieňov šedej s použitím priemerovania
farebných zložiek.
|
void |
čiernobiely(boolean vyvážiťZložky)
Upraví tento obrázok do odtieňov šedej s možnosťou určenia
predvoleného vyváženia farebných zložiek – podľa modelu ľudského
vnímania farieb.
|
void |
čiernobiely(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Upraví tento obrázok do odtieňov šedej s možnosťou určenia
vlastného vyváženia jednotlivých farebných zložiek.
|
static Obrázok |
čítaj(Archív archív,
String názovPoložky)
Prečíta do vnútornej pamäte sveta obrázok zo zadaného archívu
a vytvorí z neho nový objekt typu
Obrázok. |
static Obrázok |
čítaj(String súbor)
Prečíta do vnútornej pamäte sveta zadaný obrázok zo súboru
a vytvorí z neho nový objekt typu
Obrázok. |
void |
dalsiaSnimka()
Alias pre ďalšiaSnímka. |
void |
ďalšiaSnímka()
Aktivuje nasledujúcu snímku animácie.
|
Vlnenie |
definovaneVlnenie()
Alias pre jestvujúceVlnenie. |
Vlnenie |
definovanéVlnenie()
Alias pre jestvujúceVlnenie. |
boolean |
doSchranky()
Alias pre doSchránky. |
boolean |
doSchránky()
Vloží obsah tohto obrázka do schránky.
|
Vlnenie |
existujuceVlnenie()
Alias pre jestvujúceVlnenie. |
Vlnenie |
existujúceVlnenie()
Alias pre jestvujúceVlnenie. |
Farba |
farbaBodu(double x,
double y)
Zistí farbu bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca.
|
boolean |
farbaBodu(double x,
double y,
Color farba)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje so zadanou
farbou.
|
boolean |
farbaBodu(double x,
double y,
Farebnosť objekt)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje s farbou
zadaného objektu.
|
boolean |
farbaBodu(double x,
double y,
int r,
int g,
int b)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje s farbou
zadanou prostredníctvom farebných zložiek.
|
boolean |
farbaBodu(double x,
double y,
int r,
int g,
int b,
int a)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje s farbou
zadanou prostredníctvom farebných zložiek a úrovne priehľadnosti.
|
Farba |
farbaBodu(Poloha objekt)
Zistí farbu bodu (jedného pixela) obrázka na súradniciach
určených polohou objektu.
|
boolean |
farbaBodu(Poloha objekt,
Color farba)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
zadaného objektu v súradnicovom priestore rámca zhoduje so zadanou
farbou.
|
boolean |
farbaBodu(Poloha objekt,
Farebnosť farebnosť)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
prvého zadaného objektu (v súradnicovom priestore rámca) zhoduje
s farbou druhého zadaného objektu.
|
boolean |
farbaBodu(Poloha objekt,
int r,
int g,
int b)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
zadaného objektu (v súradnicovom priestore rámca) zhoduje
s farbou zadanou prostredníctvom farebných zložiek a úrovne.
|
boolean |
farbaBodu(Poloha objekt,
int r,
int g,
int b,
int a)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
zadaného objektu (v súradnicovom priestore rámca) zhoduje
s farbou zadanou prostredníctvom farebných zložiek a úrovne
priehľadnosti.
|
void |
farebneTienidlo(Color farba)
Alias pre farebnéTienidlo. |
void |
farebnéTienidlo(Color farba)
Použije na tento obrázok zadané farebné tienidlo.
|
void |
farebnyFilter(Color farba)
Alias pre farebnýFilter. |
void |
farebnýFilter(Color farba)
Použije na tento obrázok zadaný farebný filter.
|
void |
farebnyFilter(Farebnosť objekt)
Alias pre farebnýFilter. |
void |
farebnýFilter(Farebnosť objekt)
Použije na tento obrázok farebný filter podľa farby zadaného
objektu.
|
void |
gamaKorekcia(double γ)
Upraví intenzitu farieb obrázka na základe hodnoty parametra
gama (γ).
|
Graphics2D |
grafika()
Vráti objekt grafiky obrázka (pre potreby kreslenia do obrázka).
|
void |
jednofarebny(Color farba)
Alias pre monochromatický. |
void |
jednofarebný(Color farba)
Alias pre monochromatický. |
void |
jednofarebny(Farebnosť objekt)
Alias pre monochromatický. |
void |
jednofarebný(Farebnosť objekt)
Alias pre monochromatický. |
Vlnenie |
jestvujuceVlnenie()
Alias pre jestvujúceVlnenie. |
Vlnenie |
jestvujúceVlnenie()
Táto metóda vráti inštanciu vlnenia len v prípade, že jestvuje.
|
void |
kresli(double x,
double y,
Image obrázok)
Nakreslí do tohto obrázka zadaný obrázok, pričom ho posunie
od stredu o zadané súradnice v horizontálnom a vertikálnom
smere.
|
void |
kresli(double x,
double y,
String súbor)
Nakreslí do tohto obrázka obrázok zo zadaného súboru, ktorý bude
posunutý od stredu o zadané súradnice v horizontálnom
a vertikálnom smere.
|
void |
kresli(Image obrázok)
Nakreslí do stredu tohto obrázka zadaný obrázok.
|
void |
kresli(Poloha objekt,
Image obrázok)
Nakreslí do tohto obrázka zadaný obrázok, obrázok bude
posunutý o súradnice určené polohou zadaného objektu.
|
void |
kresli(Poloha objekt,
String súbor)
Nakreslí do tohto obrázka obrázok zo zadaného súboru, obrázok
bude posunutý o súradnice určené polohou zadaného objektu.
|
void |
kresli(Shape tvar)
Táto metóda slúži na kreslenie obrysov zadaného tvaru do obrázka.
|
void |
kresli(Shape tvar,
GRobot kreslič)
Táto metóda slúži na kreslenie obrysov zadaného tvaru do
obrázka.
|
void |
kresli(String súbor)
Nakreslí do stredu tohto obrázka obrázok zo zadaného súboru.
|
GRobot |
kreslic()
Alias pre kreslič. |
void |
kreslic(GRobot kreslič)
Alias pre kreslič. |
GRobot |
kreslič()
|
void |
kreslič(GRobot kreslič)
|
void |
kresliDo(Shape tvar)
Obmedzí kreslenie na tento obrázok na plochu zadaného útvaru
(
Shape). |
void |
kresliVsade()
Alias pre kresliVšade. |
void |
kresliVšade()
Zruší oblasť na obmedzenie kreslenia na tento obrázok.
|
boolean |
maRozmer(double šírka,
double výška)
Alias pre máRozmer. |
boolean |
máRozmer(double šírka,
double výška)
Overí zhodu rozmerov obrázka so zadanými rozmermi.
|
boolean |
maRozmer(Rozmer rozmer)
Alias pre máRozmer. |
boolean |
máRozmer(Rozmer rozmer)
Overí zhodu rozmerov obrázka s rozmermi zadaného objektu.
|
boolean |
maSirku(double šírka)
Alias pre máŠírku. |
boolean |
máŠírku(double šírka)
Overí zhodu šírky obrázka so zadanou hodnotou.
|
boolean |
maVlnenie()
Alias pre máVlnenie. |
boolean |
máVlnenie()
Overí, či je definovaná inštancia vlnenia pre tento obrázok.
|
boolean |
maVysku(double výška)
Alias pre máVýšku. |
boolean |
máVýšku(double výška)
Overí zhodu výšky obrázka so zadanou hodnotou.
|
double |
maximalneX()
Alias pre najväčšieX. |
double |
maximálneX()
Alias pre najväčšieX. |
double |
maximalneY()
Alias pre najväčšieY. |
double |
maximálneY()
Alias pre najväčšieY. |
double |
minimalneX()
Alias pre najmenšieX. |
double |
minimálneX()
Alias pre najmenšieX. |
double |
minimalneY()
Alias pre najmenšieY. |
double |
minimálneY()
Alias pre najmenšieY. |
void |
monochromaticky(Color farba)
Alias pre monochromatický. |
void |
monochromatický(Color farba)
Upraví tento obrázok do odtieňov zadanej farby.
|
void |
monochromaticky(Farebnosť objekt)
Alias pre monochromatický. |
void |
monochromatický(Farebnosť objekt)
Upraví tento obrázok do odtieňov farby zadaného objektu.
|
double |
najmensieX()
Alias pre najmenšieX. |
double |
najmensieY()
Alias pre najmenšieY. |
double |
najmenšieX()
|
double |
najmenšieY()
|
double |
najvacsieX()
Alias pre najväčšieX. |
double |
najvacsieY()
Alias pre najväčšieY. |
double |
najväčšieX()
|
double |
najväčšieY()
|
void |
negativ()
Alias pre negatív. |
void |
negatív()
Pretvorí tento obrázok na svoj farebný negatív.
|
void |
nekresliDo(Shape tvar)
Vytvára obmedzenie kreslenia na tento obrázok.
|
void |
odstranVlnenie()
Alias pre odstráňVlnenie. |
void |
odstráňVlnenie()
Ukončí vlnenie a úplne odstráni inštanciu vlnenia tohto obrázka
z prostredia programovacieho rámca GRobot.
|
void |
odtieneSedej()
Alias pre čiernobiely. |
void |
odtieneSedej(boolean vyvážiťZložky)
Alias pre čiernobiely. |
void |
odtieneSedej(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Alias pre čiernobiely. |
void |
odtieneŠedej()
Alias pre čiernobiely. |
void |
odtieneŠedej(boolean vyvážiťZložky)
Alias pre čiernobiely. |
void |
odtieneŠedej(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Alias pre čiernobiely. |
int |
opakovaniaAnimacie()
Alias pre opakovaniaAnimácie. |
int |
opakovaniaAnimácie()
Zistí, koľko opakovaní zostáva do ukončenia animácie.
|
void |
opakovaniaAnimacie(int početOpakovaní)
Alias pre opakovaniaAnimácie. |
void |
opakovaniaAnimácie(int početOpakovaní)
Ak má tento obrázok nenulový počet snímok animácie, tak táto
metóda nastaví nový počet opakovaní animácie zostávajúci do
ukončenia animácie a to bez ohľadu na to, či je animácia spustená
alebo nie.
|
Farba[] |
paleta(int početFarieb)
Vyrobí paletu najpoužívanejších farieb vyskytujúcich sa
v aktuálnej snímke obrázka so zadaným maximálnym počtom farieb.
|
Farba[] |
paleta(int početFarieb,
int hranicaZdravia)
Vyrobí paletu najpoužívanejších farieb vyskytujúcich sa
v aktuálnej snímke obrázka so zadaným maximálnym počtom farieb
a hranicou zdravia 256.
|
int |
pocetFarieb()
Alias pre početFarieb. |
int |
pocetOpakovani()
Alias pre početOpakovaní. |
void |
pocetOpakovani(int početOpakovaní)
Alias pre početOpakovaní. |
int |
pocetSnimok()
Alias pre početSnímok. |
int |
početFarieb()
Zistí počet farieb použitých v aktuálnej snímke obrázka.
|
int |
početOpakovaní()
Zistí, koľko opakovaní zostáva do ukončenia animácie.
|
void |
početOpakovaní(int početOpakovaní)
Ak má tento obrázok nenulový počet snímok animácie, tak táto
metóda nastaví nový počet opakovaní animácie zostávajúci do
ukončenia animácie a to bez ohľadu na to, či je animácia spustená
alebo nie.
|
int |
početSnímok()
Vráti aktuálny počet snímok animácie uloženej v tomto obrázku.
|
boolean |
porovnaj(Image inýObrázok)
Porovná obsah tejto a zadanej inštancie obrázka.
|
static boolean |
porovnaj(Image obrázok1,
Image obrázok2)
Porovná obsahy dvoch zadaných inštancií obrázkov.
|
void |
poslednaSnimka()
Alias pre poslednáSnímka. |
void |
poslednáSnímka()
Aktivuje poslednú snímku animácie.
|
void |
posterizuj()
Posterizuje obrázok podľa predvolenej palety preddefinovaných farieb.
|
void |
posterizuj(boolean difúziaChyby)
Posterizuje obrázok podľa predvolenej palety preddefinovaných farieb a umožňuje
zvoliť, či má byť pri tomto procese použitý algoritmus difúzie
chyby.
|
void |
posterizuj(boolean difúziaChyby,
Color[] paleta)
Posterizuje obrázok podľa palety zadanej vo forme poľa farieb
a umožňuje zvoliť, či má byť pri tomto procese použitý algoritmus
difúzie chyby.
|
void |
posterizuj(boolean difúziaChyby,
Color prváFarba,
Color... ostatnéFarby)
Posterizuje obrázok podľa palety zadanej vo forme zoznamu
farieb, pričom povinné je zadanie aspoň jednej farby a umožňuje
zvoliť, či má byť pri tomto procese použitý algoritmus difúzie
chyby.
|
void |
posterizuj(Color[] paleta)
Posterizuje obrázok podľa palety zadanej vo forme poľa farieb.
|
void |
posterizuj(Color prváFarba,
Color... ostatnéFarby)
Posterizuje obrázok podľa palety zadanej vo forme zoznamu
farieb, pričom povinné je zadanie aspoň jednej farby.
|
boolean |
pouziMasku(BufferedImage maska)
Alias pre použiMasku. |
boolean |
použiMasku(BufferedImage maska)
Použije na tento obrázok masku vyrobenú zo zadaného obrázka.
|
static Obrazok |
precitaj(Archív archív,
String názovPoložky)
Alias pre čítaj. |
static Obrazok |
precitaj(String súbor)
Alias pre čítaj. |
static Obrázok |
prečítaj(Archív archív,
String názovPoložky)
Alias pre čítaj. |
static Obrázok |
prečítaj(String súbor)
Alias pre čítaj. |
void |
predchadzajucaSnimka()
Alias pre predchádzajúcaSnímka. |
void |
predchádzajúcaSnímka()
Aktivuje predchádzajúcu snímku animácie.
|
void |
prepisBod(double x,
double y,
Color farba)
Alias pre prepíšBod. |
void |
prepisBod(double x,
double y,
Farebnosť objekt)
Alias pre prepíšBod. |
void |
prepisBod(double x,
double y,
int farba)
Alias pre prepíšBod. |
void |
prepisBod(Poloha bod,
Color farba)
Alias pre prepíšBod. |
void |
prepisBod(Poloha bod,
Farebnosť objekt)
Alias pre prepíšBod. |
void |
prepisBod(Poloha bod,
int farba)
Alias pre prepíšBod. |
void |
prepíšBod(double x,
double y,
Color farba)
Prepíše farebné zložky a zložku priehľadnosti bodu na zadanej
pozícii zadanou farbou.
|
void |
prepíšBod(double x,
double y,
Farebnosť objekt)
Prepíše farebné zložky a zložku priehľadnosti bodu na zadanej
pozícii farbou zadaného objektu.
|
void |
prepíšBod(double x,
double y,
int farba)
Prepíše farebné zložky a zložku priehľadnosti bodu na zadanej
pozícii zadanou kombináciou zložiek ARGB zakódovaných
v celočíselnej hodnote.
|
void |
prepíšBod(Poloha bod,
Color farba)
Prepíše farebné zložky a zložku priehľadnosti na pozícii zadaného
bodu zadanou farbou.
|
void |
prepíšBod(Poloha bod,
Farebnosť objekt)
Prepíše farebné zložky a zložku priehľadnosti na pozícii zadaného
bodu farbou zadaného objektu.
|
void |
prepíšBod(Poloha bod,
int farba)
Prepíše farebné zložky a zložku priehľadnosti na pozícii zadaného
bodu zadanou kombináciou zložiek ARGB zakódovaných v celočíselnej
hodnote.
|
void |
pretoc(double Δx,
double Δy)
Alias pre pretoč. |
void |
pretoč(double Δx,
double Δy)
Pretočí obsah obrázka o zadaný počet bodov v horizontálnom
a/alebo vertikálnom smere.
|
void |
prevratHorizontalne()
Alias pre prevráťVodorovne. |
void |
prevráťHorizontálne()
|
void |
prevratVertikalne()
Alias pre prevráťZvislo. |
void |
prevráťVertikálne()
|
void |
prevratVodorovne()
Alias pre prevráťVodorovne. |
void |
prevráťVodorovne()
Prevráti obrázok podľa zvislej osi – pravá časť obrázka
sa ocitne vľavo a naopak.
|
void |
prevratZvislo()
Alias pre prevráťZvislo. |
void |
prevráťZvislo()
Prevráti obrázok podľa vodorovnej osi – horná časť obrázka sa
ocitne dole a naopak.
|
void |
pridajSnimku()
Alias pre pridajSnímku. |
void |
pridajSnímku()
Pridá novú snímku na koniec animácie s aktuálnou (naposledy
použitou) hodnotou trvania zobrazenia
a s aktuálnou grafikou obrázka.
|
void |
pridajSnimku(Image obrázok)
Alias pre pridajSnímku. |
void |
pridajSnímku(Image obrázok)
Pridá novú snímku na koniec animácie s aktuálnou (naposledy
použitou) hodnotou trvania zobrazenia
a so zadanou grafikou.
|
void |
pridajSnimku(Image obrázok,
double trvanie)
Alias pre pridajSnímku. |
void |
pridajSnímku(Image obrázok,
double trvanie)
Pridá novú snímku na koniec animácie so zadanou grafikou a so
zadanou hodnotou trvania jej zobrazenia.
|
void |
pridajVlnenie()
Pridá alebo zresetuje vlnenie tohto obrázka.
|
void |
pridajVlnenie(boolean ajČasovač)
Pridá alebo zresetuje vlnenie tohto obrázka.
|
void |
pridajVlnenie(int útlm)
Pridá alebo zresetuje vlnenie tohto obrázka.
|
void |
pridajVlnenie(int útlm,
boolean ajČasovač)
Pridá alebo zresetuje vlnenie tohto obrázka.
|
static String |
priecinokObrazkov()
Alias pre priečinokObrázkov. |
static void |
priecinokObrazkov(String priečinok)
Alias pre priečinokObrázkov. |
static String |
priečinokObrázkov()
Vráti reťazec s aktuálnym priečinkom, z ktorého sú obrázky
prečítané.
|
static void |
priečinokObrázkov(String priečinok)
Ak sú všetky obrázky uložené v spoločnom priečinku, môžeme pre
nich touto metódou nastaviť zdrojový priečinok čítania.
|
double |
priehladnost()
Alias pre priehľadnosť. |
double |
priehľadnosť()
|
void |
priehladnost(double priehľadnosť)
Alias pre priehľadnosť. |
void |
priehľadnosť(double priehľadnosť)
|
void |
priehladnost(Priehľadnosť objekt)
Alias pre priehľadnosť. |
void |
priehľadnosť(Priehľadnosť objekt)
Skopíruje úroveň (ne)priehľadnosti zo zadaného objektu.
|
void |
prvaSnimka()
Alias pre prváSnímka. |
void |
prváSnímka()
Aktivuje prvú snímku animácie.
|
void |
roluj(double Δx,
double Δy)
Posunie obsah obrázka o zadaný počet bodov v horizontálnom
a/alebo vertikálnom smere.
|
void |
rozmaz()
Alias pre rozmaž. |
void |
rozmaz(Color pozadie)
Alias pre rozmaž. |
void |
rozmaz(Farebnosť pozadie)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie,
Color pozadie)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie,
Farebnosť pozadie)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie,
int rozsah)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie,
int rozsah,
Color pozadie)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie,
int rozsah,
Farebnosť pozadie)
Alias pre rozmaž. |
void |
rozmaz(int bgr,
int bgg,
int bgb)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie,
int bgr,
int bgg,
int bgb)
Alias pre rozmaž. |
void |
rozmaz(int opakovanie,
int rozsah,
int bgr,
int bgg,
int bgb)
Alias pre rozmaž. |
void |
rozmaž()
Rozmaže grafiku obrázka.
|
void |
rozmaž(Color pozadie)
Rozmaže grafiku obrázka.
|
void |
rozmaž(Farebnosť pozadie)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie,
Color pozadie)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie,
Farebnosť pozadie)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie,
int rozsah)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie,
int rozsah,
Color pozadie)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie,
int rozsah,
Farebnosť pozadie)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int bgr,
int bgg,
int bgb)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie,
int bgr,
int bgg,
int bgb)
Rozmaže grafiku obrázka.
|
void |
rozmaž(int opakovanie,
int rozsah,
int bgr,
int bgg,
int bgb)
Rozmaže grafiku obrázka.
|
Rozmer |
rozmery()
Vráti rozmery obrázka v implementácii rozhrania
Rozmer. |
void |
rozmery(Rozmer rozmer)
Implementácia metódy rozhrania
Rozmer určenej
na nastavenie obidvoch rozmerov obrázka. |
double |
rychlost()
Alias pre rýchlosť. |
double |
rýchlosť()
Vráti aktuálnu rýchlosť prehrávania animácie (bez ohľadu na to,
či je práve animácia spustená alebo nie).
|
void |
rychlost(double nováRýchlosť)
Alias pre rýchlosť. |
void |
rýchlosť(double nováRýchlosť)
Upraví rýchlosť prehrávania animácie (bez ohľadu na to, či je
práve animácia spustená alebo nie).
|
double |
rychlostAnimacie()
Alias pre rýchlosťAnimácie. |
double |
rýchlosťAnimácie()
Vráti aktuálnu rýchlosť prehrávania animácie (bez ohľadu na to,
či je práve animácia spustená alebo nie).
|
void |
rychlostAnimacie(double nováRýchlosť)
Alias pre rýchlosťAnimácie. |
void |
rýchlosťAnimácie(double nováRýchlosť)
Upraví rýchlosť prehrávania animácie (bez ohľadu na to, či je
práve animácia spustená alebo nie).
|
double |
sirka()
Alias pre šírka. |
void |
sirka(double šírka)
Alias pre šírka. |
int |
snimka()
Alias pre snímka. |
int |
snímka()
Vráti index aktívnej snímky animácie.
|
void |
snimka(int indexSnímky)
Alias pre snímka. |
void |
snímka(int indexSnímky)
Aktivuje zadanú snímku animácie.
|
void |
spusti()
Spustí animáciu s nekonečným počtom opakovaní v naposledy
použitom smere prehrávania.
|
void |
spusti(int početOpakovaní)
Spustí animáciu so zadaným počtom opakovaní v naposledy použitom
smere prehrávania.
|
void |
spustiAnimaciu()
Alias pre spustiAnimáciu. |
void |
spustiAnimáciu()
Spustí animáciu s nekonečným počtom opakovaní v naposledy
použitom smere prehrávania.
|
void |
spustiAnimaciu(int početOpakovaní)
Alias pre spustiAnimáciu. |
void |
spustiAnimáciu(int početOpakovaní)
Spustí animáciu so zadaným počtom opakovaní v naposledy použitom
smere prehrávania.
|
void |
spustiAnimaciuDopredu()
Alias pre spustiAnimáciuDopredu. |
void |
spustiAnimáciuDopredu()
Spustí animáciu dopredu s nekonečným počtom opakovaní.
|
void |
spustiAnimaciuDopredu(int početOpakovaní)
Alias pre spustiAnimáciuDopredu. |
void |
spustiAnimáciuDopredu(int početOpakovaní)
Spustí animáciu dopredu so zadaným počtom opakovaní.
|
void |
spustiAnimaciuPospiatku()
Alias pre spustiAnimáciuPospiatku. |
void |
spustiAnimáciuPospiatku()
Spustí animáciu pospiatku s nekonečným počtom opakovaní.
|
void |
spustiAnimaciuPospiatku(int početOpakovaní)
Alias pre spustiAnimáciuPospiatku. |
void |
spustiAnimáciuPospiatku(int početOpakovaní)
Spustí animáciu pospiatku so zadaným počtom opakovaní.
|
void |
spustiDopredu()
Spustí animáciu dopredu s nekonečným počtom opakovaní.
|
void |
spustiDopredu(int početOpakovaní)
Spustí animáciu dopredu so zadaným počtom opakovaní.
|
void |
spustiPospiatku()
Spustí animáciu pospiatku s nekonečným počtom opakovaní.
|
void |
spustiPospiatku(int početOpakovaní)
Spustí animáciu pospiatku so zadaným počtom opakovaní.
|
void |
svetlejsi()
Alias pre bledší. |
void |
svetlejsi(double faktor)
Alias pre bledší. |
void |
svetlejší()
Alias pre bledší. |
void |
svetlejší(double faktor)
Alias pre bledší. |
void |
svetlo(Obrázok osvetlenie)
Táto metóda použije na tento obrázok zadanú svetelnú masku.
|
void |
svetlo(Obrázok grafika,
Obrázok osvetlenie)
Táto metóda použije na obrázok zadaný v prvom parametri
(
grafika) svetelnú masku zadanú v druhom parametri
(osvetlenie) a výsledok zlúči do tejto (this)
inštancie obrázka. |
double |
šírka()
Vráti šírku obrázka.
|
void |
šírka(double šírka)
Implementácia metódy rozhrania
Rozmer určenej
na nastavenie šírky obrázka. |
void |
tmavsi()
Alias pre tmavší. |
void |
tmavsi(double faktor)
Alias pre tmavší. |
void |
tmavší()
Zníži úroveň svetlosti tohto obrázka.
|
void |
tmavší(double faktor)
Zníži úroveň svetlosti tohto obrázka.
|
double |
trvanie()
Zistí hodnotu trvania zobrazenia aktívnej snímky.
|
void |
trvanie(double trvanie)
Nastaví novú hodnotu trvania aktívnej snímky.
|
double |
trvanie(int indexSnímky)
Zistí hodnotu trvania zobrazenia zadanej snímky.
|
void |
trvanie(int indexSnímky,
double trvanie)
Nastaví novú hodnotu trvania zadanej snímky.
|
double |
trvanieZobrazeniaSnimky()
Alias pre trvanieZobrazeniaSnímky. |
double |
trvanieZobrazeniaSnímky()
Zistí hodnotu trvania zobrazenia aktívnej snímky.
|
void |
trvanieZobrazeniaSnimky(double trvanie)
Alias pre trvanieZobrazeniaSnímky. |
void |
trvanieZobrazeniaSnímky(double trvanie)
Nastaví novú hodnotu trvania aktívnej snímky.
|
double |
trvanieZobrazeniaSnimky(int indexSnímky)
Alias pre trvanieZobrazeniaSnímky. |
double |
trvanieZobrazeniaSnímky(int indexSnímky)
Zistí hodnotu trvania zobrazenia zadanej snímky.
|
void |
trvanieZobrazeniaSnimky(int indexSnímky,
double trvanie)
Alias pre trvanieZobrazeniaSnímky. |
void |
trvanieZobrazeniaSnímky(int indexSnímky,
double trvanie)
Nastaví novú hodnotu trvania zadanej snímky.
|
apacheAntZIP.ZipEntry[] |
uloz(Archív archív,
String názovPoložky)
Alias pre ulož. |
void |
uloz(String súbor)
Alias pre ulož. |
void |
uloz(String súbor,
boolean prepísať)
Alias pre ulož. |
apacheAntZIP.ZipEntry[] |
ulož(Archív archív,
String názovPoložky)
Uloží obsah obrázka do archívu ako položku so zadaným názvom.
|
void |
ulož(String súbor)
Uloží obrázok do súboru.
|
void |
ulož(String súbor,
boolean prepísať)
Uloží obsah obrázka do súboru.
|
void |
upravJasKontrast(double jas,
double kontrast)
Upraví parametre jasu a kontrastu celého obrázka.
|
void |
upravPriehladnost(double zmena)
Alias pre upravPriehľadnosť. |
void |
upravPriehľadnosť(double zmena)
Upraví úroveň (ne)priehľadnosti obráza.
|
Vlnenie |
vlnenie()
Vráti inštanciu vlnenia pre tento obrázok,
aby bolo možné s vlnením ďalej pracovať.
|
void |
vlozSnimku(int indexSnímky)
Alias pre vložSnímku. |
void |
vlozSnimku(int indexSnímky,
Image obrázok)
Alias pre vložSnímku. |
void |
vlozSnimku(int indexSnímky,
Image obrázok,
double trvanie)
Alias pre vložSnímku. |
void |
vložSnímku(int indexSnímky)
Vloží novú snímku animácie na zadanú pozíciu s aktuálnou
(naposledy použitou) hodnotou trvania
zobrazenia a s aktuálnou grafikou obrázka.
|
void |
vložSnímku(int indexSnímky,
Image obrázok)
Vloží novú snímku animácie na zadanú pozíciu s aktuálnou
(naposledy použitou) hodnotou trvania
zobrazenia a so zadanou grafikou.
|
void |
vložSnímku(int indexSnímky,
Image obrázok,
double trvanie)
Vloží novú snímku animácie na zadanú pozíciu so zadanou grafikou
a so zadanou hodnotou trvania jej zobrazenia.
|
void |
vylejFarbu(double x,
double y,
Color farba)
Vyleje do zadaného bodu do obrázka farbu, ktorá sa odtiaľ
rozšíri po okraje tej časti kresby v obrázku, v ktorej sa zadaný
bod nachádza.
|
void |
vylejFarbu(double x,
double y,
Farebnosť objekt)
Vyleje do zadaného bodu do obrázka farbu (určenú objektom),
ktorá sa odtiaľ rozšíri po okraje tej časti kresby v obrázku,
v ktorej sa zadaný bod nachádza.
|
Farba |
vylejFarbu(double x,
double y,
int r,
int g,
int b)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek, ktorá sa určeného bodu rozšíri po okraje
okolitej kresby.
|
Farba |
vylejFarbu(double x,
double y,
int r,
int g,
int b,
int a)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek a úrovne (ne)priehľadnosti, pričom farba sa
z určeného bodu rozšíri k okrajom okolitej kresby.
|
void |
vylejFarbu(GRobot ktorý)
Zadaný robot vyleje na svojej pozícii do obrázka svoju aktuálnu
farbu, ktorá sa odtiaľ rozšíri po
okraje okolitej kresby.
|
void |
vylejFarbu(Poloha bod,
Color farba)
Vyleje do zadaného bodu do obrázka farbu, ktorá sa odtiaľ rozšíri
po okraje tej časti kresby v obrázku, v ktorej sa zadaný bod
nachádza.
|
void |
vylejFarbu(Poloha bod,
Farebnosť objekt)
Vyleje do zadaného bodu do obrázka farbu (určenú objektom), ktorá
sa odtiaľ rozšíri po okraje tej časti kresby v obrázku, v ktorej
sa zadaný bod nachádza.
|
Farba |
vylejFarbu(Poloha bod,
int r,
int g,
int b)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek, ktorá sa určeného bodu rozšíri po okraje
okolitej kresby.
|
Farba |
vylejFarbu(Poloha bod,
int r,
int g,
int b,
int a)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek a úrovne (ne)priehľadnosti, pričom farba sa
z určeného bodu rozšíri k okrajom okolitej kresby.
|
void |
vymaz()
Alias pre vymaž. |
boolean |
vymazKresbu(BufferedImage kresba)
Alias pre vymažKresbu. |
void |
vymazSnimku()
Alias pre vymažSnímku. |
void |
vymazSnimku(int indexSnímky)
Alias pre vymažSnímku. |
void |
vymaž()
Vymaže obsah obrázka.
|
boolean |
vymažKresbu(BufferedImage kresba)
Použije na tento obrázok filter vyrobený zo zložky jasu kresby
zadaného/predloženého obrázka.
|
void |
vymažSnímku()
Vymaže aktuálnu snímku animácie a aktivuje najbližšiu dostupnú
snímku.
|
void |
vymažSnímku(int indexSnímky)
Vymaže zadanú snímku animácie a ak to bola aktívna snímka,
tak aktivuje najbližšiu dostupnú snímku.
|
void |
vypln(Color farba)
Alias pre vyplň. |
void |
vyplň(Color farba)
Vyplní celú plochu obrázka zadanou farbou.
|
void |
vypln(Farebnosť objekt)
Alias pre vyplň. |
void |
vyplň(Farebnosť objekt)
Vyplní celú plochu obrázka farbou zadaného objektu.
|
void |
vypln(Image výplň)
Alias pre vyplň. |
void |
vyplň(Image výplň)
Vyplní obrázok zadanou textúrou.
|
Farba |
vypln(int r,
int g,
int b)
Alias pre vyplň. |
Farba |
vyplň(int r,
int g,
int b)
Vyplní obrázok farbou zadanou prostredníctvom farebných
zložiek.
|
Farba |
vypln(int r,
int g,
int b,
int a)
Alias pre vyplň. |
Farba |
vyplň(int r,
int g,
int b,
int a)
Vyplní obrázok farbou zadanou prostredníctvom farebných zložiek
a úrovne (ne)priehľadnosti.
|
void |
vypln(Shape tvar)
Alias pre vyplň. |
void |
vyplň(Shape tvar)
Táto metóda slúži na kreslenie vyplnených tvarov do obrázka.
|
void |
vypln(Shape tvar,
GRobot kreslič)
Alias pre vyplň. |
void |
vyplň(Shape tvar,
GRobot kreslič)
Táto metóda slúži na kreslenie vyplnených tvarov do obrázka.
|
void |
vypln(Shape tvar,
Image výplň)
Alias pre vypln. |
void |
vyplň(Shape tvar,
Image výplň)
Vyplní zadaný tvar textúrou určenou zadaným obrázkom a výsledok
nakreslí do tohto obrázka.
|
void |
vypln(Shape tvar,
String súbor)
Alias pre vypln. |
void |
vyplň(Shape tvar,
String súbor)
Vyplní zadaný tvar textúrou prečítanou zo súboru s obrázkom
a výsledok nakreslí do obrázka.
|
void |
vypln(String súbor)
Alias pre vyplň. |
void |
vyplň(String súbor)
Vyplní obrázok zadanou textúrou.
|
BufferedImage |
vyrobMasku()
Vyrobí z tohto obrázka masku priehľadnosti.
|
boolean |
vyrobMasku(BufferedImage nováMaska)
Vyrobí z tohto obrázka do zadaného obrázka masku priehľadnosti.
|
double |
vyska()
Alias pre výška. |
void |
vyska(double výška)
Alias pre výška. |
double |
výška()
Vráti šírku obrázka.
|
void |
výška(double výška)
Implementácia metódy rozhrania
Rozmer určenej
na nastavenie výšky obrázka. |
void |
zastav()
Zastaví prehrávanie animácie tohto obrázka.
|
void |
zastavAnimaciu()
Alias pre zastav. |
void |
zastavAnimáciu()
Alias pre zastav. |
Obrazok |
zmenVelkost(double mierka)
Alias pre zmeňVeľkosť. |
Obrázok |
zmeňVeľkosť(double mierka)
Vyrobí nový novú verziu tohto obrázka, ktorej zmení veľkosť podľa
zadanej mierky.
|
Obrazok |
zmenVelkost(int nováŠírka,
int nováVýška)
Alias pre zmeňVeľkosť. |
Obrázok |
zmeňVeľkosť(int nováŠírka,
int nováVýška)
Vyrobí nový novú verziu tohto obrázka, ktorej zmení veľkosť podľa
zadaných rozmerov.
|
void |
zrusKreslica()
Alias pre zrušKresliča. |
void |
zrusPriehladnost()
Alias pre zrušPriehľadnosť. |
void |
zrušKresliča()
Zruší kresliča obrázka.
|
void |
zrušPriehľadnosť()
Zruší priehľadnosť všetkých bodov v obrázku.
|
addTileObserver, coerceData, copyData, createGraphics, getAlphaRaster, getColorModel, getData, getData, getGraphics, getHeight, getHeight, getMinTileX, getMinTileY, getMinX, getMinY, getNumXTiles, getNumYTiles, getProperty, getProperty, getPropertyNames, getRaster, getRGB, getRGB, getSampleModel, getSource, getSources, getSubimage, getTile, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTransparency, getType, getWidth, getWidth, getWritableTile, getWritableTileIndices, hasTileWriters, isAlphaPremultiplied, isTileWritable, releaseWritableTile, removeTileObserver, setData, setRGB, setRGB, toStringflush, getAccelerationPriority, getCapabilities, getScaledInstance, setAccelerationPrioritypublic final int šírka
Šírka obrázka. Konštanta má rovnakú hodnotu, akú vracia metóda
šírka.
public final int sirka
Šírka obrázka. Konštanta má rovnakú hodnotu, akú vracia metóda
šírka.
public final int výška
Výška obrázka. Konštanta má rovnakú hodnotu, akú vracia metóda
výška.
public final int vyska
Výška obrázka. Konštanta má rovnakú hodnotu, akú vracia metóda
výška.
public final Graphics2D grafika
Grafika obrázka (pre potreby kreslenia do obrázka). Robot má
dostatok nástrojov (metód) na kreslenie. Ak potrebujete priamy
prístup ku grafickému objektu obrázka
(a využívať jeho metódy – ide o triedu Graphics2D), použite na prístup k nemu túto konštantu alebo
metódu grafika, ktorá vracia rovnaký objekt.
Používajte tento objekt ojedinele, pretože inštancie triedy
obrázok mierne prispôsobujú svoj súradnicový priestor, aby boli
lepšie použiteľné v prostredí programovacieho rámca grafického
robota.
Poznámka: Súradnicový priestor obrázka
je posunutý tak, aby počiatok súradnicovej sústavy grafického
robota ležal v strede obrázka. Predpokladá sa, že všetky
objekty smerujúce do obrázka budú generované robotom a ten
generuje tvary tak, aby boli priamo použiteľné v súradnicovom
priestore Javy, ibaže v prepočte vzhľadom k rozmerom plátien,
preto má obrázok svoj priestor posunutý.
O súradnicových priestoroch sa podrobnejšie píše napríklad
v opisoch metód GRobot.cesta(), SVGpodpora.zapíš(…),
SVGpodpora.čítaj(meno) a priebežne
v celej dokumentácii.
public Obrázok()
Predvolený konštruktor. Vytvorí nový prázdny obrázok s rozmermi plátna.
public Obrázok(int šírka,
int výška)
Konštruktor, ktorý vytvorí nový prázdny obrázok so zadanými rozmermi (v bodoch).
šírka – šírka nového obrázkavýška – výška nového obrázkapublic Obrázok(Image obrázok)
Vytvorí nový obrázok podľa zadaného obrázka ako predlohy. Nový
obrázok bude mať rozmery aj obsah predlohy. Konštruktor najskôr
vytvorí prázdny obrázok s rozmermi predlohy a potom do neho
prekreslí obsah predlohy.
Ak potrebujete vytvoriť nový obrázok prečítaný zo súboru, použite
metódu Obrázok.čítaj(názovSúboru).
obrázok – obrázoky predlohypublic static void priečinokObrázkov(String priečinok)
Ak sú všetky obrázky uložené v spoločnom priečinku, môžeme pre
nich touto metódou nastaviť zdrojový priečinok čítania.
Priečinok by sa mal nachádzať v hlavnom priečinku projektu alebo by
k nemu mala viesť systémovo nezávislá relatívna cesta. Zadaním
prázdneho reťazca alebo hodnoty null používanie
priečinka zrušíme.
Cesta je používaná pri čítaní všetkých obrázkov, okrem
čítania z archívu. Čiže
napríklad pri čítaní metódou čítaj(súbor), vypĺňaní metódami GRobot.vyplňTvar(tvar, súbor), GRobot.vyplňOblasť(oblasť, súbor)
(atď.), kreslení metódami GRobot.obrázok(súbor), Plátno.obrázok(súbor) (atď.), ale aj pri nastavovaní vlastného
tvaru robota GRobot.vlastnýTvar(súbor) a v mnohých iných situáciách (pozri aj
metódu Svet.priečinokObrázkov(priečinok)).
priečinok – názov priečinka, relatívna cesta, prípadne
prázdny reťazec alebo nullpriečinokObrázkov(),
Svet.priečinokObrázkov()public static void priecinokObrazkov(String priečinok)
Alias pre priečinokObrázkov.
public static String priečinokObrázkov()
Vráti reťazec s aktuálnym priečinkom, z ktorého sú obrázky
prečítané. Reťazec je obohatený o oddeľovací znak priečinkov java.io.File.separatorChar (/ alebo
\ – záleží na type operačného systému), ktorý automaticky
pridáva metóda priečinokObrázkov(priečinok). Rovnako všetky oddeľovacie znaky
priečinkov v relatívnej ceste sú nahradené podľa typu operačného
systému.
priečinokObrázkov(String),
Svet.priečinokObrázkov(String)public static String priecinokObrazkov()
Alias pre priečinokObrázkov.
public static Obrázok čítaj(String súbor)
Prečíta do vnútornej pamäte sveta zadaný obrázok zo súboru
a vytvorí z neho nový objekt typu Obrázok.
Táto metóda uzatvára funkcionalitu metódy Svet.čítajObrázok(súbor), ibaže
naviac z objektu typu Image (ktorý zostáva uložený
vo vnútornej pamäti sveta) automaticky vytvára nový objekt Obrázok.
Obrázok prečítaný zo súboru je chápaný ako zdroj a po
prečítaní zostane uložený vo vnútornej pamäti sveta. Z nej
môže byť v prípade potreby (napríklad ak sa obsah súboru na
disku zmenil) odstránený metódou Svet.uvoľni(názovZdroja). (Táto informácia je platná pre
všetky metódy pracujúce s obrázkami alebo zvukmi, ktoré
prijímajú názov súboru ako parameter.)
Táto metóda je schopná čítať aj animácie uložené vo formáte GIF
(z dôvodu obmedzení tohto formátu ho neodporúčame používať na
ukladanie nových animácií) a tiež sekvencie uložené v číslovaných
obrázkových súboroch vo formáte PNG (čo je lepšia alternatíva na
ukladanie plnofarebných animácií; pri použití tejto verzie metódy
má však tú nevýhodu, že nevie automaticky uložiť informácie
o trvaní zobrazenia jednotlivých snímok a predvolene pracuje
s hodnotou 40 ms nastavenou pre každú snímku; túto nevýhodu nemá
čítanie sekvencie z archívu – pozri poznámku nižšie). Podrobnejšie
informácie o PNG sekvenciách sú v opise metódy ulož(súbor, prepísať).
Upozornenie: Pri čítaní animácie z PNG sekvencie (príklad s PNG sekvenciou je uvedený nižšie, pod príkladom s animovaným GIFom) sú do vnútorného zoznamu zdrojov sveta uložené všetky obrázky sekvencie. To je ďalšia nevýhoda, lebo obrazové informácie snímok sú uchovávané duplicitne. Túto nevýhodu nemá čítanie sekvencie z archívu (pozri poznámku nižšie).
Poznámka: Od verzie 2.18 sa PNG sekvencie
dajú jednoducho čítať aj z archívu (ZIP).
Výhodou je uchovanie celej animácie v jednom súbore, úspora
vnútornej pamäte programovacieho rámca a tiež automatické uchovanie
informácií o časovaní snímok (v samostatnej položke archívu).
Pozri aj príklad v opise metódy Obrázok.čítaj(archív, názovPoložky).
Príklad:
Ako bolo povedané, programovací rámec dokáže čítať a pracovať s animovanými obrázkami vo formáte GIF. Je to historický formát s určitými (najmä farebnými) obmedzeniami, ale stále nachádza svoje použitie. Nasledujúci príklad ukazuje, ako takýto súbor prečítať a animovať s použitím programovacieho rámca GRobot.
srdce.gif – animovaný obrázok na
prevzatie, ktorý potrebuje tento príklad na to, aby
fungoval
importknižnica.*;publicclassAnimujGIFextendsGRobot{// Súkromná statická inštancia obrázka, ktorý budeme animovať. Statickosť// umožňuje jej použitie v hlavnej metóde, ktorá musí byť statická.privatestaticObrázokanimovanýObrázok;// Hlavná metóda. (Obvykle ju umiestňujeme na koniec súboru. Je to taká// dohoda, zvyk medzi programátormi v Jave, ale z pohľadu samotného jazyka// je jedno, kde je jej definícia umiestnená. Teraz sme ju presunuli sem,// lebo na komentáre v nej logicky nadväzujú komentáre v konštruktore// tejto triedy.)publicstaticvoidmain(String... args) {// Skryjeme svet (čiže okno aplikácie).Svet.skry();// Vopred prečítame animovaný obrázok zo súboru, aby sme podľa jeho// rozmerov mohli upraviť rozmery sveta v konštruktore:animovanýObrázok =Obrázok.čítaj("srdce.gif");// Vytvorenie anonymnej inštancie tejto triedy (konštruktor triedy// odvodenej od robota vždy zabezpečí vytvorenie aplikácie):newAnimujGIF();// Spustenie animácie:animovanýObrázok.spusti();// Spustenie časovača:Svet.spustiČasovač(0.020);// Automatické nastavenie veľkosti a polohy okna sveta (t. j.// aplikácie) a jeho zobrazenie:Svet.zbaľ();Svet.vystreď();Svet.zobraz(); }// Súkromný konštruktor.privateAnimujGIF() {// Spustenie tej verzie nadradeného konštruktora, ktorá umožňuje// zmeniť rozmery plátien sveta:super(animovanýObrázok.šírka, animovanýObrázok.výška);// Skrytie robota:skry(); }// Reakcia na časovač – pravidelne prekresľuje animovaný obrázok, ktorého// animácia je vykonávaná automaticky (vnútornými mechanizmami sveta).@Overridepublicvoidtik() {if(Svet.neboloPrekreslené()) {podlaha.vymažGrafiku();obrázok(animovanýObrázok); } } }
Výsledok:

Táto animácia
bude zobrazená v okne aplikácie.
Príklad:
Tento príklad ukazuje ako prečítať PNG sekvenciu s použitím
rovnakej šablóny názvu súborov, akú používa druhý príklad uvedený
v opise metódy ulož(súbor,
prepísať). Dotknutý príklad generuje súbory použiteľné s týmto
príkladom, preto je vhodné sa zaoberať najskôr ním. (Generovanie
môže trvať aj sedem minút, podľa výkonnosti hadvéru,
a vygenerované súbory budú dohromady zaberať okolo 120 MB.)
V súlade s informáciami uvedenými v opise metódy
ulož(súbor, prepísať) platí, že ak
táto metóda pri čítaní sekvencie nájde súbor s poradovým číslom
nula, tak ho prečíta ako neanimovaný obrázok a už sa nepokúša
hľadať ďalšie súbory vyhovujúce kritériám šablóny názvov súborov
animovanej sekvencie. Inak postupuje pri čítaní systematicky
a pridáva snímky do prečítanej animácie dovtedy, kým jestvujú
súbory v neprerušenej sekvencii podľa určenej šablóny.
Poznámka: Metóda ulož(súbor, prepísať) dokáže vygenerovať len PNG
sekvenciu, ale táto metóda (čítaj(súbor)) je schopná
prečítať aj sekvenciu vo formáte JPEG. JPEG je stratový formát
a neumožňuje ukladanie (polo)priehľadných bodov. Je však vhodný na
ukladanie fotografií, kde sa jeho kompresné artefakty vizuálne
strácajú (opticky zanikajú v grafickej komplikovanosti obrazu),
čím sa lepšie uplatňuje jeho kompresný benefit. JPEG sekvencie
môžete použiť na simulovanie prehrávania videa, ak takú sekvenciu
vyrobíte s použitím externého softvéru a zachováte pravidlá
pomenovania šablón s rozdielom prípony – namiesto .png
musí byť uvedená .jpg alebo .jpeg
importknižnica.*;publicclassAnimujSekvenciuPNGextendsGRobot{// Inštancia obrázka, ktorý bude obsahovať a animovať prečítanú sekvenciu.privateObrázokanimovanýObrázok;// Aktuálne „percento“ prečítaných snímok vypočítané v reakcii „sekvencia“// (v skutočnosti hodnota v rozsahu od 0.0 do 1.0, ktorá je použitá na// zobrazenie percent):privatedoublepercento =0.0;// Nastavenie začiatočného stavu aplikácie (po prečítaní sekvencie sa// zmení na false):privatebooleančítam =true;// Názov naposledy prečítaného súboru sekvencie:privateStringnaposledyPrečítaný ="";// Súkromný konštruktor.privateAnimujSekvenciuPNG() {// Spustenie tej verzie nadradeného konštruktora, ktorá umožňuje// zmeniť rozmery plátien sveta:super(Svet.šírkaObrázka("sekvencia/nahodne-ciary-001.png"),Svet.výškaObrázka("sekvencia/nahodne-ciary-001.png"));// Počas čítania pozastavíme automatické prekresľovanie (aby// kreslenie v reakcii sekvencia „neblikalo“):Svet.nekresli();// Automatické nastavenie veľkosti a polohy okna sveta// (t. j. aplikácie):Svet.zbaľ();Svet.vystreď();// Skrytie robota:skry();// Spustíme časomieru, pretože chceme vedieť ako dlho potrvá čítanie// PNG sekvencie a časovač, aby mohlo byť aktualizované zobrazovanie// priebehu čítania:Svet.spustiČasomieru();Svet.spustiČasovač(0.250);// Prečítanie PNG sekvencie:animovanýObrázok =Obrázok.čítaj("sekvencia/nahodne-ciary-***.png");// Zastavíme časomieru aj časovač a zobrazíme výsledok (na konzole):doublečas =Svet.zastavČasomieru();Svet.zastavČasovač();System.out.println("Čítanie animácie trvalo: "+Math.round(čas /60) +" min "+F(čas %60,2) +" s");// Prečítané – odteraz treba zobrazovať animáciu:čítam =false;// Nastavíme čiernu farbu pozadia:Svet.farbaPozadia(čierna);// A spustíme animáciu a časovač:animovanýObrázok.spusti();Svet.spustiČasovač(0.040);// Obnovíme automatické prekresľovanie, aby sme videli priebeh// animácie:Svet.kresli(); }// Táto reakcia je automaticky spúšťaná počas čítania (alebo zápisu)// animovanej PNG sekvencie. Používame ju na aktualizovanie informácie// o stave čítania zobrazenej na obrazovke pre používateľa cez reakciu tik.@Overridepublicvoidsekvencia(intkódSpracovania,Stringzdroj,Stringcieľ,longstav,longcelkovo) {// Vypočítame percento prečítanej animácie a uložíme názov súboru:percento = (double)stav / (double)celkovo; naposledyPrečítaný = zdroj;// Žiadame prekreslenie, čo bude spracované v reakcii tik:Svet.žiadajPrekreslenie(); }// Reakcia na časovač – pravidelne prekresľuje animovaný obrázok, ktorého// animácia je vykonávaná automaticky (vnútornými mechanizmami sveta).@Overridepublicvoidtik() {if(Svet.neboloPrekreslené()) {// Reakcia slúži na zobrazovanie priebehu čítania aj na// zobrazovanie prečítanej animácie. V obidvoch prípadoch najprv// vymažeme grafiku podlahy:podlaha.vymažGrafiku();// Potom podľa stavu aplikácie zobrazíme priebeh alebo animovaný// obrázok:if(čítam) {// Nasledujúce príkazy kreslia jednoduchý ukazovateľ priebehu// obsahujúci informačný text o aktuálnom percente a naposledy// prečítanom súbore:skoč(percento *200-200,0);farba(svetlošedá);vyplňObdĺžnik(percento *200,10);farba(čierna);skočNa(0,0);kresliObdĺžnik(200,10);text(F(percento *100.0,0) +" % ("+ naposledyPrečítaný +")");// Prekreslíme obrazovku, aby bolo vidno aktuálny stav// priebehu:Svet.prekresli(); }elseobrázok(animovanýObrázok); } }// Hlavná metóda.publicstaticvoidmain(String... args) {// Vytvorenie anonymnej inštancie tejto triedy (konštruktor triedy// odvodenej od robota vždy zabezpečí vytvorenie aplikácie):newAnimujSekvenciuPNG(); } }
Opis priebehu a výsledku:
Počas čítania bude na obrazovke premietaný stav priebehu čítania
s názvom naposledy prečítaného súboru. Kód spracovania reakcie
sekvencia
sme v príklade nepoužili. V tomto prípade mal hodnotu konštanty
ČÍTANIE_PNG_SEKVENCIE.
(V prípade čítania animáce z formátu GIF je hodnota rovná
hodnote konštanty ČÍTANIE_GIF_ANIMÁCIE.) Podľa nami nameraných hodnôt trvalo čítanie
sekvencie od osem do dvanásť sekúnd.
Výsledkom vykonania tohto príkladu bude spustenie animácie
prečítanej zo sekvencie súborov vo formáte PNG (uloženej na
disku). Grafické súbory potrebné na fungovanie tohto príkladu je
schopný vytvoriť v poradí druhý príklad uvedený v opise metódy
ulož(súbor, prepísať) (preto je
vhodné sa zaoberať najskôr ním).
![]() |
![]() |
Ukážky možného vzhľadu
prečítanej animáce, ak bola sekvencia vygenerovaná príkladom
z opisu metódy | |
Na 32-bitových operačných systémoch sa môže stať, že aplikácia nebude mať dostatok pamäte na vykonanie. V takom prípade skúste cez príkazový riadok operačného systému spustiť aplikáciu nasledujúcim príkazom potvrdeným v priečinku s preloženou aplikáciou:
java -Xmx1g AnimujSekvenciuPNG
V prípade, že táto metóda nenájde dostatok miesta v pamäti na
prečítanie celej sekvencie, tak uvoľní obrázok z pamäti a vráti
hodnotu null. Tiež upozorní všetky inštancie sledujúce
čítanie sekvencie reakciou sekvencia a/alebo aktívnu obsluhu udalostí
s definovanou reakciou sekvencia poslaním informácií
platných v čase zlyhania s kódom spracovania CHYBA_ČÍTANIA_PNG_SEKVENCIE.
súbor – názov súboru s obrázkomObrázok
(prípadne null ak pokus o prečítanie sekvencie
zlyhal z pamäťových dôvodov)GRobotException – ak súbor s obrázkom nebol nájdený
(identifikátor imageNotFound)Svet.priečinokObrázkov(String)public static Obrázok čítaj(Archív archív, String názovPoložky)
Prečíta do vnútornej pamäte sveta obrázok zo zadaného archívu
a vytvorí z neho nový objekt typu Obrázok. Archív
musí byť vopred otvorený na čítanie. Inak metóda funguje veľmi
podobne ako metóda čítaj(súbor).
Obrázok prečítaný z archívu je chápaný ako objekt a po prečítaní
zostáva uložený vo vnútornej pamäti sveta. Z nej môže byť v prípade
potreby odstránený metódou Svet.uvoľni(ktorý) (kde ktorý je inštancia
obrázka).
Táto metóda neberie do úvahy nastavenie priečinka obrázkov. Ak je obrázok v archíve uložený v nejakom priečinku, treba ako názov položky uviesť celú cestu.
Upozornenie: Táto metóda je použiteľná len v prípade, že je archív otvorený na čítanie.
Príklad:
Nižšie sú fragmenty kódu, ktorými sa dá zapísať aj prečítať PNG
sekvencia z archívu. Kód treba korektne uzavrieť do štruktúr
try-catch, obrázok na zápis treba vopred
pripraviť (naprogramovať jeho vyrobenie), ale inak je kód
pripravený na použitie.
Poznámka: Pri zápise a čítaní PNG sekvencie v archíve sú automaticky uchovávané informácie o časovaní snímok v samostatnej položke archívu, ktorej názov je odvodený zo šablóny PNG sekvencie. Čítanie PNG sekvencie z archívu má aj tú výhodu, že parciálne obrázky sekvencie nie sú duplicitne ukladané v pamäti sveta.
// (deklarácie)Archívarchív =newArchív();Obrázokobrázok =/*… obrázok treba vytvoriť …*/;// Takto sa dá obrázok zapísať:archív.otvorNaZápis("archív-png.zip"); obrázok.ulož(archív,"názov-*.png"); archív.zavri();// prípadne takto:archív.otvorNaZápis("archív-png.zip"); archív.pridajPoložku("názov-*.png", obrázok); archív.zavri();
// A takto potom prečítaťarchív.otvorNaČítanie("archív-png.zip"); obrázok =Obrázok.čítaj(archív,"názov-*.png"); archív.zavri();// prípadne takto:archív.otvorNaČítanie("archív-png.zip"); obrázok = archív.obrázok("názov-*.png"); archív.zavri();
archív – archív, z ktorého má byť obrázok prečítanýnázovPoložky – názov položky s obrázkom v archíve (vrátane
úplnej cesty) alebo šablóna sekvencie animácieObrázok
(prípadne null, ak pokus o prečítanie sekvencie
zlyhal z pamäťových dôvodov)GRobotException – ak archív nie je otvorený na čítanie
(identifikátor archiveNotOpenForReading) alebo zadaná
položka s obrázkom nebola nájdená (identifikátor
entryNotFound)ulož(Archív, String),
Archív.obrázok(String),
Archív.pridajPoložku(String, Obrázok)public double šírka()
public double výška()
public void šírka(double šírka)
Implementácia metódy rozhrania Rozmer určenej
na nastavenie šírky obrázka. Keďže je však obrázok rozmerovo
nemenný (angl. immutable), produkuje táto metóda vždy výnimku
GRobotException s identifikátorom
imageSizeImmutable.
šírka v rozhraní RozmerGRobotException – vždy – obrázok je rozmerovo nemenný
(identifikátor imageSizeImmutable)public void výška(double výška)
Implementácia metódy rozhrania Rozmer určenej
na nastavenie výšky obrázka. Keďže je však obrázok rozmerovo
nemenný (angl. immutable), produkuje táto metóda vždy výnimku
GRobotException s identifikátorom
imageSizeImmutable.
výška v rozhraní RozmerGRobotException – vždy – obrázok je rozmerovo nemenný
(identifikátor imageSizeImmutable)public Rozmer rozmery()
public void rozmery(Rozmer rozmer)
Implementácia metódy rozhrania Rozmer určenej
na nastavenie obidvoch rozmerov obrázka. Keďže je však obrázok
rozmerovo nemenný (angl. immutable), produkuje táto metóda vždy
výnimku GRobotException s identifikátorom
imageSizeImmutable.
rozmery v rozhraní RozmerGRobotException – vždy – obrázok je rozmerovo nemenný
(identifikátor imageSizeImmutable)public boolean máŠírku(double šírka)
Overí zhodu šírky obrázka so zadanou hodnotou.
public boolean maSirku(double šírka)
Alias pre máŠírku.
public boolean máVýšku(double výška)
Overí zhodu výšky obrázka so zadanou hodnotou.
public boolean maVysku(double výška)
Alias pre máVýšku.
public boolean máRozmer(double šírka,
double výška)
Overí zhodu rozmerov obrázka so zadanými rozmermi.
public boolean maRozmer(double šírka,
double výška)
Alias pre máRozmer.
public boolean máRozmer(Rozmer rozmer)
Overí zhodu rozmerov obrázka s rozmermi zadaného objektu.
public Obrázok zmeňVeľkosť(double mierka)
Vyrobí nový novú verziu tohto obrázka, ktorej zmení veľkosť podľa zadanej mierky.
Príklad:
importknižnica.*;publicclassTestZmenyVeľkostiextendsGRobot{privatefinalZoznam<Obrázok> obrázky =newZoznam<Obrázok>();privateTestZmenyVeľkosti() {// Najprv vyrobíme a nakreslíme obrázok:Obrázokobrázok =newObrázok(100,100);kresliNaObrázok(obrázok);farba(žltá);vyplň();hrúbkaČiary(1);farba(červená);kružnica(45);farba(zelená);štvorec(25);farba(tyrkysová);hrúbkaČiary(2);for(inti =0; i <18; ++i) {skočNa(0,0);vpravo(20);dopredu(47); }domov();farba(modrá);kruh(5);kresliNaPodlahu();// Potom postupne zmeníme jeho rozmer v rozmedzí mierok 0.33 – 3.0…for(doublemierka =0.33; mierka <=3.0; mierka +=0.025) {veľkosť(10* mierka);// nepovinné – veľkosť robota bude// indikovať fázu procesuobrázky.pridaj(obrázok.zmeňVeľkosť(mierka)); }// …a späť. (Obrázky so zmenenou veľkosťou ukladáme do zoznamu.)for(doublemierka =3.0; mierka >=0.33; mierka -=0.025) {veľkosť(10* mierka);// nepovinné – veľkosť robota bude// indikovať fázu procesuobrázky.pridaj(obrázok.zmeňVeľkosť(mierka)); }// Konštantná uhlová rýchlosť zabezpečí rotáciu obrázkauhlováRýchlosť(0.5); }@Overridepublicvoidaktivita() {// Zmena vlastného tvaru robota postupným výberom prvkov zoznamu// zabezpečí ukážku kontinuálnej zmeny obrázka v rozmedzí mierok,// ktoré sme použili v konštruktore.vlastnýTvar(obrázky.ďalší()); }publicstaticvoidmain(String[] args) {newTestZmenyVeľkosti(); } }
Výsledok:

Ukážka výsledku – jedna z verzií
zväčšeného obrázka vo fáze otáčania sa okolo svojej osi.
mierka – mierka 0.5 znamená, že výsledný obrázok
bude polovičný; mierka 2.0 znamená, že výsledný
obrázok bude dvojnásobnýObrázok)public Obrazok zmenVelkost(double mierka)
Alias pre zmeňVeľkosť.
public Obrázok zmeňVeľkosť(int nováŠírka, int nováVýška)
Vyrobí nový novú verziu tohto obrázka, ktorej zmení veľkosť podľa zadaných rozmerov.
nováŠírka – šírka novej verzie obrázkanováVýška – šírka novej verzie obrázkaObrázok)public Obrazok zmenVelkost(int nováŠírka, int nováVýška)
Alias pre zmeňVeľkosť.
public Graphics2D grafika()
Vráti objekt grafiky obrázka (pre potreby kreslenia do obrázka).
Robot má dostatok nástrojov (metód) na kreslenie. Ak potrebujete
priamy prístup ku grafickému objektu
obrázka (a využívať jeho metódy – ide o triedu Graphics2D), použite na prístup k nemu túto metódu alebo
konštantu grafika, ktorá obsahuje rovnaký
objekt, aký vracia táto metóda. Používajte tento objekt
ojedinele, pretože inštancie triedy obrázok mierne prispôsobujú
svoj súradnicový priestor, aby boli lepšie použiteľné v prostredí
programovacieho rámca grafického robota.
(Na spresnenie: Súradnicový priestor obrázka je posunutý tak,
aby počiatok súradnicovej sústavy programovacieho rámca GRobot
ležal v strede obrázka. Predpokladá sa totiž, že všetky objekty
tvarov určené na nakreslenie do obrázka budú generované robotom
a ten generuje tvary tak, aby boli priamo použiteľné
v súradnicovom priestore Javy, ibaže v prepočte vzhľadom
k rozmerom plátien, preto má obrázok svoj priestor posunutý.
Viac sa o súradnicových priestoroch píše napríklad v opisoch
metód GRobot.cesta(),
SVGpodpora.zapíš(…), SVGpodpora.čítaj(meno) a tiež priebežne v celej dokumentácii.)
Graphics2D – grafika
obrázkapublic void kresliVšade()
Zruší oblasť na obmedzenie kreslenia na tento obrázok.
GRobot.kresliVšade(),
kresliDo(Shape),
nekresliDo(Shape)public void kresliVsade()
Alias pre kresliVšade.
public void kresliDo(Shape tvar)
Obmedzí kreslenie na tento obrázok na plochu zadaného útvaru
(Shape).
Robot disponuje množinou metód na kreslenie tvarov (kružnica, elipsa, štvorec…), ktoré
zároveň generujú tvary. Na ich použitie s touto metódou je dobré
predtým kreslenie tvarov zakázať a neskôr opäť povoliť.
Metóda text dokonca zákaz kreslenia
tvarov požaduje, aby mohla vygenerovať tvar (bez zákazu má
návratovú hodnotu null). Tvar je možné vytvoriť aj
z cesty…
Obmedzenie zužuje aktuálny priestor kreslenia, to znamená, že
sa priebežne vytvára oblasť, ktorá je prienikom všetkých
obmedzení. Ak chceme vytvoriť obmedzenie tvaru, ktorý je
možné vytvoriť inou množinovou operáciou, môžeme na obmedzenie
kreslenia použiť Oblasť (zadanú namiesto
parametra tvar). Obmedzenia sú platné pre všetky
roboty a zrušíme ich volaním metódy kresliVšade.
Poznámka: Pri takomto orezávaní nie
je na všetkých platformách a/alebo implementáciách virtuálneho
stroja Javy dostupná funkcia anti-aliasingu, čo zjednodušene
povedané znamená, že okraje orezanej kresby môžu byť „zúbkaté.“
Ak sa chcete tejto nedokonalosti vyhnúť, použite radšej funkciu
masky. Tá dovoľuje ovplyvňovať
úroveň priehľadnosti s jemnosťou na jednotlivé body rastra.
(Poznámka: Naopak, pri exporte kreslenia do inštancie SVGPodpora
je výhodnejšie pracovať s orezávaním – čiže práve s touto
metódou alebo jej variantmi.)
tvar – tvar (Shape) alebo OblasťGRobot.kresliDo(Shape),
kresliVšade(),
nekresliDo(Shape)public void nekresliDo(Shape tvar)
Vytvára obmedzenie kreslenia na tento obrázok.
Funguje rovnako ako metóda kresliDo, ibaže obrátene – kreslenie je možné všade, okrem
zadaného tvaru alebo oblasti.
Rovnako ako pri metóde kresliDo, sa
aj toto obmedzenie kombinuje s aktuálnymi obmedzeniami kreslenia
a je platné pre všetky roboty. Všetky ombedzenia zrušíme
volaním metódy kresliVšade.
Poznámka: Pri takomto orezávaní nie
je na všetkých platformách a/alebo implementáciách virtuálneho
stroja Javy dostupná funkcia anti-aliasingu, čo zjednodušene
povedané znamená, že okraje orezanej kresby môžu byť „zúbkaté.“
Ak sa chcete tejto nedokonalosti vyhnúť, použite radšej funkciu
masky. Tá dovoľuje ovplyvňovať
úroveň priehľadnosti s jemnosťou na jednotlivé body rastra.
(Poznámka: Naopak, pri exporte kreslenia do inštancie SVGPodpora
je výhodnejšie pracovať s orezávaním – čiže práve s touto
metódou alebo jej variantmi.)
tvar – tvar (Shape) alebo OblasťGRobot.nekresliDo(Shape),
kresliDo(Shape),
kresliVšade()public double najmenšieX()
najväčšieX(),
najmenšieY(),
najväčšieY()public double najmensieX()
Alias pre najmenšieX.
public double minimálneX()
Alias pre najmenšieX.
public double minimalneX()
Alias pre najmenšieX.
public double najmenšieY()
najmenšieX(),
najväčšieX(),
najväčšieY()public double najmensieY()
Alias pre najmenšieY.
public double minimálneY()
Alias pre najmenšieY.
public double minimalneY()
Alias pre najmenšieY.
public double najväčšieX()
najmenšieX(),
najmenšieY(),
najväčšieY()public double najvacsieX()
Alias pre najväčšieX.
public double maximálneX()
Alias pre najväčšieX.
public double maximalneX()
Alias pre najväčšieX.
public double najväčšieY()
najmenšieX(),
najväčšieX(),
najmenšieY()public double najvacsieY()
Alias pre najväčšieY.
public double maximálneY()
Alias pre najväčšieY.
public double maximalneY()
Alias pre najväčšieY.
public void vymaž()
Vymaže obsah obrázka. V podstate vyplní obrázok priehľadnou farbou.
public void vymaz()
Alias pre vymaž.
public void prepíšBod(double x,
double y,
Color farba)
Prepíše farebné zložky a zložku priehľadnosti bodu na zadanej pozícii zadanou farbou.
x – x-ová súradnica bodu v súradnicovom priestore rámcay – y-ová súradnica bodu v súradnicovom priestore rámcafarba – objekt určujúci novú farbu bodupublic void prepíšBod(double x,
double y,
Farebnosť objekt)
Prepíše farebné zložky a zložku priehľadnosti bodu na zadanej pozícii farbou zadaného objektu.
x – x-ová súradnica bodu v súradnicovom priestore rámcay – y-ová súradnica bodu v súradnicovom priestore rámcaobjekt – objekt určujúci novú farbu bodupublic void prepíšBod(double x,
double y,
int farba)
Prepíše farebné zložky a zložku priehľadnosti bodu na zadanej pozícii zadanou kombináciou zložiek ARGB zakódovaných v celočíselnej hodnote.
x – x-ová súradnica bodu v súradnicovom priestore rámcay – y-ová súradnica bodu v súradnicovom priestore rámcafarba – celé číslo obsahujúce kombináciu farebných zložiek
RGB a priehľadnostipublic void prepisBod(double x,
double y,
int farba)
Alias pre prepíšBod.
public void prepíšBod(Poloha bod, Color farba)
Prepíše farebné zložky a zložku priehľadnosti na pozícii zadaného bodu zadanou farbou.
bod – objekt reprezentujúci súradnice bodu (v súradnicovom
priestore robota)farba – objekt určujúci novú farbu bodupublic void prepíšBod(Poloha bod, Farebnosť objekt)
Prepíše farebné zložky a zložku priehľadnosti na pozícii zadaného bodu farbou zadaného objektu.
bod – objekt reprezentujúci súradnice bodu (v súradnicovom
priestore robota)objekt – objekt určujúci novú farbu bodupublic void prepíšBod(Poloha bod, int farba)
Prepíše farebné zložky a zložku priehľadnosti na pozícii zadaného bodu zadanou kombináciou zložiek ARGB zakódovaných v celočíselnej hodnote.
bod – objekt reprezentujúci súradnice bodu (v súradnicovom
priestore robota)farba – celé číslo obsahujúce kombináciu farebných zložiek
RGB a priehľadnostipublic GRobot kreslič()
Vráti aktuálneho kresliča obrázka alebo
null, ak nie je kreslič nastavený. Pre podrobnosti
pozri informácie pri setteri vlastnosti
kreslič.
null,
ak obrázok nemá nastaveného žiadneho konkrétneho kresličapublic void kreslič(GRobot kreslič)
Nastaví „kresliča“ obrázka – grafického
robota, ktorý bude slúžiť na alternatívne kreslenie a vypĺňanie
tvarov v rámci obrázka. Vlastnosť je určená na kombinované
fungovanie s metódami kresli
a vyplň. (Tie sú v súčasnosti považované
za metódy, ktoré poskytujú alternatívny spôsob kreslenia
a vypĺňania tvarov do obrázka. Podrobnosti nájdete v ich opisoch.)
Novému zvolenému kresličovi bude automaticky vypnuté kreslenie tvarov, pričom jeho
štandardné kresliace schopnosti (kreslenie pri pohybe dopredu, dozadu a podobne, pri položenom
pere) zostávajú zachované. Prípadnému starému kresličovi bude
kreslenie tvarov automaticky
zapnuté.
Táto vlastnosť je určená výhradne na použitie s metódami
kresli a vyplň, ktoré
očakávajú výstupy z metód robota na kreslenie tvarov (kruh, elipsa, štvorec a podobne). Nie je
dobré túto vlastnosť kombinovať s úplným presmerovaním kreslenia robota do
obrázka. Mohli by sme získať neočakávané výsledky.
Keď chceme kresliča zrušiť, pošleme do argumentu tejto metódy
hodnotu null alebo použijeme metódu zrušKresliča.
kreslič – nový kreslič (grafický robot) alebo nullpublic void zrušKresliča()
public void zrusKreslica()
Alias pre zrušKresliča.
public void kresli(Shape tvar)
Táto metóda slúži na kreslenie obrysov zadaného tvaru do obrázka. Ak má tento objekt obrázka nastaveného takzvaného kresliča, tak táto metóda použije na nakreslenie jeho farbu alebo náter a štýl čiary. V opačnom prípade použije hlavný robot.
Zadaný tvar by mal byť vygenerovaný niektorým robotom (metódami
na kreslenie tvarov), pretože obrázky majú súradnicový priestor
prispôsobený prostrediu rámca – osi sú posunuté tak, aby robot
v pozícii [0, 0] kreslil do stredu obrázka (toto posunutie závisí
nielen od rozmerov obrázka, ale aj od aktuálnych rozmerov plátien)
a y-ová súradnica je orientovaná podľa súradnicového systému Javy,
to znamená, že je voči svetu robota zrkadlovo prevrátená.
(O súradnicových priestoroch sa podrobnejšie píše napríklad
v opisoch metód GRobot.cesta(), SVGpodpora.zapíš(…),
SVGpodpora.čítaj(meno) a priebežne
v celej dokumentácii.)
Tip: V súvislosti s generovaním tvarov a ich
použitím by robot, ktorého chceme použiť na generovanie tvarov,
mal mať vypnuté kreslenie
tvarov, aby vygenerovaný tvar nenakreslil do aktívneho plátna,
prípadne do iného obrázka, do ktorého má presmerované kreslenie.
Automatické vypnutie alebo zapnutie kreslenia tvarov zvoleného
grafického robota vykoná metóda kreslič
a to podľa toho, či je jej argumentom konkrétny robot – vtedy
mu kreslenie tvarov vypne, alebo hodnota null – vtedy
zapne kreslenie tvarov tomu robotu, ktorý bol aktuálnym
kresličom konkrétneho obrázka. Metóda však nezaznamenáva počet
spustení pre roboty, takže v prípade jej náhodného spúšťania
s rôznymi hodnotami argumentov – robotov alebo hodnôt
null, je výsledný stav kreslenia alebo nekreslenia
tvarov pre konkrétny robot rovný tomu stavu, do ktorého ho
preplo posledné spustenie dotknutej metódy. Treba si na to dať
pozor v prípade, že chceme ten istý robot použiť ako kresliča
viacerých obrázkov.
Na kreslenie robotom do obrázka je jednoduchšie je použiť
metódu GRobot.kresliNaObrázok(Obrázok) na presmerovanie
kreslenia robota do obrázka a kresliť robotom rovnakým spôsobom
ako pri klasickom kreslení na plátno
(podlahu alebo strop).
tvar – objekt typu Shape, ktorý bude
nakreslený aktuálnym štýlom čiary a farbou/náterom kresliča alebo hlavného robotavyplň(Shape),
kresli(Shape, GRobot),
vyplň(Shape, GRobot)public void kresli(Shape tvar, GRobot kreslič)
Táto metóda slúži na kreslenie obrysov zadaného tvaru do
obrázka. Metóda potrebuje na svoje správne fungovanie zadanie
robota „kresliča,“ ktorého farbu alebo náter a štýl čiary použije
na kreslenie. Ak je do metódy namiesto konkrétneho kresliča zadaná
hodnota null, tak je na získanie parametrov kreslenia
použitý hlavný robot (ak ten
nejestvuje, kreslenie nebude vykonané).
tvar – objekt typu Shape, ktorý bude
nakreslený aktuálnym štýlom čiary a farbou/náterom zadaného
robota („kresliča“)kreslič – grafický robot, ktorého parametre budú použité
na kreslenie alebo nullvyplň(Shape, GRobot),
kresli(Shape),
vyplň(Shape)public void vyplň(Shape tvar)
Táto metóda slúži na kreslenie vyplnených tvarov do obrázka. Ak má tento objekt obrázka nastaveného takzvaného kresliča, tak táto metóda použije na vyplnenie jeho farbu alebo náter. V opačnom prípade použije hlavný robot (ak ten nejestvuje, kreslenie nebude vykonané).
Zadaný tvar by mal byť vygenerovaný niektorým robotom (metódami
na kreslenie tvarov), pretože obrázky majú súradnicový priestor
prispôsobený prostrediu rámca – osi sú posunuté tak, aby robot
v pozícii [0, 0] kreslil do stredu obrázka (toto posunutie závisí
nielen od rozmerov obrázka, ale aj od aktuálnych rozmerov plátien)
a y-ová súradnica je orientovaná podľa súradnicového systému Javy,
to znamená, že je voči svetu robota zrkadlovo prevrátená.
(O súradnicových priestoroch sa podrobnejšie píše napríklad
v opisoch metód GRobot.cesta(), SVGpodpora.zapíš(…),
SVGpodpora.čítaj(meno) a priebežne
v celej dokumentácii.)
Tip: V súvislosti s generovaním tvarov a ich
použitím by robot, ktorého chceme použiť na generovanie tvarov,
mal mať vypnuté kreslenie
tvarov, aby vygenerovaný tvar nenakreslil do aktívneho plátna,
prípadne do iného obrázka, do ktorého má presmerované kreslenie.
Automatické vypnutie alebo zapnutie kreslenia tvarov zvoleného
grafického robota vykoná metóda kreslič
a to podľa toho, či je jej argumentom konkrétny robot – vtedy
mu kreslenie tvarov vypne, alebo hodnota null – vtedy
zapne kreslenie tvarov tomu robotu, ktorý bol aktuálnym
kresličom konkrétneho obrázka. Metóda však nezaznamenáva počet
spustení pre roboty, takže v prípade jej náhodného spúšťania
s rôznymi hodnotami argumentov – robotov alebo hodnôt
null, je výsledný stav kreslenia alebo nekreslenia
tvarov pre konkrétny robot rovný tomu stavu, do ktorého ho
preplo posledné spustenie dotknutej metódy. Treba si na to dať
pozor v prípade, že chceme ten istý robot použiť ako kresliča
viacerých obrázkov.
Na kreslenie robotom do obrázka je jednoduchšie je použiť
metódu GRobot.kresliNaObrázok(Obrázok) na presmerovanie
kreslenia robota do obrázka a kresliť robotom rovnakým spôsobom
ako pri klasickom kreslení na plátno
(podlahu alebo strop).
tvar – objekt typu Shape, ktorý bude vyplnený
aktuálnou farbou/náterom kresliča
alebo hlavného robotakresli(Shape),
vyplň(Shape, GRobot),
kresli(Shape, GRobot)public void vyplň(Shape tvar, GRobot kreslič)
Táto metóda slúži na kreslenie vyplnených tvarov do obrázka.
Metóda potrebuje na svoje správne fungovanie zadanie robota
„kresliča,“ ktorého farbu alebo náter použije na vyplnenie
zadaného tvaru. Ak je do metódy namiesto konkrétneho kresliča
zadaná hodnota null, tak je na získanie parametrov
kreslenia použitý hlavný robot
(ak ten nejestvuje, kreslenie nebude vykonané).
tvar – objekt typu Shape, ktorý bude vyplnený
aktuálnou farbou/náterom zadaného robota („kresliča“)kreslič – grafický robot, ktorého parametre budú použité
na kreslenie alebo nullkresli(Shape, GRobot),
vyplň(Shape),
kresli(Shape)public void vyplň(Color farba)
Vyplní celú plochu obrázka zadanou farbou.
farba – objekt určujúci farbu na výplň plátnavymaž()public void vyplň(Farebnosť objekt)
Vyplní celú plochu obrázka farbou zadaného objektu.
objekt – objekt určujúci farbu na výplň plátnavymaž()public Farba vyplň(int r, int g, int b)
Vyplní obrázok farbou zadanou prostredníctvom farebných zložiek.
r – červená zložka farby; celé číslo v rozsahu 0 – 255g – zelená zložka farby; celé číslo v rozsahu 0 – 255b – modrá zložka farby; celé číslo v rozsahu 0 – 255Farba vytvorený podľa zadaných
zložiekvyplň(Color)public Farba vyplň(int r, int g, int b, int a)
Vyplní obrázok farbou zadanou prostredníctvom farebných zložiek a úrovne (ne)priehľadnosti.
r – červená zložka farby; celé číslo v rozsahu 0 – 255g – zelená zložka farby; celé číslo v rozsahu 0 – 255b – modrá zložka farby; celé číslo v rozsahu 0 – 255a – úroveň (ne)priehľadnosti farby; celé číslo v rozsahu
0 – 255 (0 – neviditeľná farba; 255 – nepriehľadná farba)Farba vytvorený podľa zadaných
hodnôt parametrovvyplň(Color)public void vyplň(Shape tvar, String súbor)
Vyplní zadaný tvar textúrou prečítanou zo súboru s obrázkom a výsledok nakreslí do obrázka.
Zadaný tvar by mal byť generovaný niektorým robotom (metódami na kreslenie tvarov), pretože obrázky majú súradnicový priestor prispôsobený prostrediu rámca. Zvolený grafický robot by mal mať vypnuté kreslenie tvarov, aby vygenerovaný tvar nenakreslil do aktívneho plátna (prípadne do obrázka, do ktorého bolo jeho kreslenie presmerované).
Obrázok prečítaný zo súboru je chápaný ako zdroj a po
prečítaní zostane uložený vo vnútornej pamäti sveta. Z nej
môže byť v prípade potreby (napríklad ak sa obsah súboru na
disku zmenil) odstránený metódou Svet.uvoľni(názovZdroja). (Táto informácia je platná pre
všetky metódy pracujúce s obrázkami alebo zvukmi, ktoré
prijímajú názov súboru ako parameter.)
Poznámka: Parametre textúry sa dajú
ovplyvňovať špeciálnymi príkazmi. Súvisí s nimi i predvolené
správanie príkazov vypĺňania. Predvolený bod začiatku vypĺňania
dlaždicami sa nachádza v strede plátna alebo vypĺňaného
obrázka. Pozrite si aj opis metódy
posunutieVýplne,
kde nájdete príklad použitia a odkazy na metódy
upravujúce ďalšie parametre obrázkových výplní.
tvar – objekt typu Shape, ktorý bude vyplnený
textúrousúbor – názov súboru s obrázkom textúryGRobotException – ak súbor s obrázkom nebol nájdený
(identifikátor imageNotFound)Svet.priečinokObrázkov(String)public void vyplň(Shape tvar, Image výplň)
Vyplní zadaný tvar textúrou určenou zadaným obrázkom a výsledok nakreslí do tohto obrázka. Ako textúra by nemal byť použitý ten obrázok, do ktorého je vypĺňaný tvar kreslený.
Zadaný tvar by mal byť generovaný niektorým robotom (metódami na kreslenie tvarov), pretože obrázky majú súradnicový priestor prispôsobený prostrediu rámca. Zvolený grafický robot by mal mať vypnuté kreslenie tvarov, aby vygenerovaný tvar nenakreslil do aktívneho plátna (prípadne do obrázka, do ktorého bolo jeho kreslenie presmerované).
Poznámka: Parametre textúry sa dajú
ovplyvňovať špeciálnymi príkazmi. Súvisí s nimi i predvolené
správanie príkazov vypĺňania. Predvolený bod začiatku vypĺňania
dlaždicami sa nachádza v strede plátna alebo vypĺňaného
obrázka. Pozrite si aj opis metódy
posunutieVýplne,
kde nájdete príklad použitia a odkazy na metódy
upravujúce ďalšie parametre obrázkových výplní.
tvar – objekt typu Shape, ktorý bude vyplnený
textúrouvýplň – obrázok s textúroupublic void kresli(String súbor)
Nakreslí do stredu tohto obrázka obrázok zo zadaného súboru.
Obrázok prečítaný zo súboru je chápaný ako zdroj a po
prečítaní zostane uložený vo vnútornej pamäti sveta. Z nej
môže byť v prípade potreby (napríklad ak sa obsah súboru na
disku zmenil) odstránený metódou Svet.uvoľni(názovZdroja). (Táto informácia je platná pre
všetky metódy pracujúce s obrázkami alebo zvukmi, ktoré
prijímajú názov súboru ako parameter.)
súbor – názov súboru s obrázkomSvet.priečinokObrázkov(String)public void kresli(double x,
double y,
String súbor)
Nakreslí do tohto obrázka obrázok zo zadaného súboru, ktorý bude posunutý od stredu o zadané súradnice v horizontálnom a vertikálnom smere.
Obrázok prečítaný zo súboru je chápaný ako zdroj a po
prečítaní zostane uložený vo vnútornej pamäti sveta. Z nej
môže byť v prípade potreby (napríklad ak sa obsah súboru na
disku zmenil) odstránený metódou Svet.uvoľni(názovZdroja). (Táto informácia je platná pre
všetky metódy pracujúce s obrázkami alebo zvukmi, ktoré
prijímajú názov súboru ako parameter.)
x – posun od stredu v horizontálnom smerey – posun od stredu vo vertikálnom smeresúbor – názov súboru s obrázkomSvet.priečinokObrázkov(String)public void kresli(Poloha objekt, String súbor)
Nakreslí do tohto obrázka obrázok zo zadaného súboru, obrázok bude posunutý o súradnice určené polohou zadaného objektu.
objekt – objekt, ktorého súradnice určia posunutie obrázkasúbor – názov súboru s obrázkomSvet.priečinokObrázkov(String)public void kresli(Image obrázok)
Nakreslí do stredu tohto obrázka zadaný obrázok.
obrázok – obrázok, ktorý má byť nakreslenýpublic void kresli(double x,
double y,
Image obrázok)
Nakreslí do tohto obrázka zadaný obrázok, pričom ho posunie od stredu o zadané súradnice v horizontálnom a vertikálnom smere.
x – posun od stredu v horizontálnom smerey – posun od stredu vo vertikálnom smereobrázok – obrázok, ktorý má byť nakreslenýpublic void kresli(Poloha objekt, Image obrázok)
Nakreslí do tohto obrázka zadaný obrázok, obrázok bude posunutý o súradnice určené polohou zadaného objektu.
objekt – objekt, ktorého súradnice určia posunutie obrázkaobrázok – obrázok, ktorý má byť nakreslenýpublic void vyplň(String súbor)
Vyplní obrázok zadanou textúrou. Textúra je súbor s obrázkom, ktorý bude použitý na dlaždicové vyplnenie celej plochy tohto obrázka.
Obrázok prečítaný zo súboru je chápaný ako zdroj a po
prečítaní zostane uložený vo vnútornej pamäti sveta. Z nej
môže byť v prípade potreby (napríklad ak sa obsah súboru na
disku zmenil) odstránený metódou Svet.uvoľni(názovZdroja). (Táto informácia je platná pre
všetky metódy pracujúce s obrázkami alebo zvukmi, ktoré
prijímajú názov súboru ako parameter.)
Poznámka: Parametre textúry sa dajú
ovplyvňovať špeciálnymi príkazmi. Súvisí s nimi i predvolené
správanie príkazov vypĺňania. Predvolený bod začiatku vypĺňania
dlaždicami sa nachádza v strede plátna alebo vypĺňaného
obrázka. Pozrite si aj opis metódy
posunutieVýplne,
kde nájdete príklad použitia a odkazy na metódy
upravujúce ďalšie parametre obrázkových výplní.
súbor – názov súboru s obrázkom textúryGRobotException – ak súbor s obrázkom nebol nájdený
(identifikátor imageNotFound)vyplň(Color),
Svet.priečinokObrázkov(String)public void vyplň(Image výplň)
Vyplní obrázok zadanou textúrou. Textúra je iný obrázok (objekt typu Image
alebo odvodený), ktorý bude použitý na dlaždicové vyplnenie celej
plochy tohto obrázka.
Poznámka: Parametre textúry sa dajú
ovplyvňovať špeciálnymi príkazmi. Súvisí s nimi i predvolené
správanie príkazov vypĺňania. Predvolený bod začiatku vypĺňania
dlaždicami sa nachádza v strede plátna alebo vypĺňaného
obrázka. Pozrite si aj opis metódy
posunutieVýplne,
kde nájdete príklad použitia a odkazy na metódy
upravujúce ďalšie parametre obrázkových výplní.
výplň – obrázok s textúrouvyplň(Color)public void vylejFarbu(double x,
double y,
Color farba)
Vyleje do zadaného bodu do obrázka farbu, ktorá sa odtiaľ
rozšíri po okraje tej časti kresby v obrázku, v ktorej sa zadaný
bod nachádza. Na ďalšie informácie pozri metódu Plátno.vylejFarbu(double, double, Color). Správanie
tejto metódy je jej veľmi podobné.
x – x-ová súradnica počiatočného boduy – y-ová súradnica počiatočného bodufarba – objekt určujúci farbu výplnepublic void vylejFarbu(double x,
double y,
Farebnosť objekt)
Vyleje do zadaného bodu do obrázka farbu (určenú objektom),
ktorá sa odtiaľ rozšíri po okraje tej časti kresby v obrázku,
v ktorej sa zadaný bod nachádza. Na ďalšie informácie pozri
metódu Plátno.vylejFarbu(double, double, Color).
Správanie tejto metódy je jej veľmi podobné.
x – x-ová súradnica počiatočného boduy – y-ová súradnica počiatočného boduobjekt – objekt určujúci farbu výplnepublic Farba vylejFarbu(double x, double y, int r, int g, int b)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek, ktorá sa určeného bodu rozšíri po okraje
okolitej kresby. Na ďalšie informácie pozri metódu vylejFarbu(double x, double y, Color farba). Správanie tejto
metódy je odvodené od nej.
x – x-ová súradnica počiatočného boduy – y-ová súradnica počiatočného bodur – červená zložka farby; celé číslo v rozsahu 0 – 255g – zelená zložka farby; celé číslo v rozsahu 0 – 255b – modrá zložka farby; celé číslo v rozsahu 0 – 255Farba vytvorený podľa zadaných
zložiekvylejFarbu(double, double, Color)public Farba vylejFarbu(double x, double y, int r, int g, int b, int a)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek a úrovne (ne)priehľadnosti, pričom farba sa
z určeného bodu rozšíri k okrajom okolitej kresby. Na ďalšie
informácie pozri metódu vylejFarbu(double x, double y,
Color farba). Správanie tejto metódy je odvodené od nej.
x – x-ová súradnica počiatočného boduy – y-ová súradnica počiatočného bodur – červená zložka farby; celé číslo v rozsahu 0 – 255g – zelená zložka farby; celé číslo v rozsahu 0 – 255b – modrá zložka farby; celé číslo v rozsahu 0 – 255a – úroveň (ne)priehľadnosti farby; celé číslo v rozsahu
0 – 255 (0 – neviditeľná farba; 255 – nepriehľadná farba)Farba vytvorený podľa zadaných
hodnôt parametrovvylejFarbu(double, double, Color)public void vylejFarbu(Poloha bod, Color farba)
Vyleje do zadaného bodu do obrázka farbu, ktorá sa odtiaľ rozšíri
po okraje tej časti kresby v obrázku, v ktorej sa zadaný bod
nachádza. Na ďalšie informácie pozri metódu Plátno.vylejFarbu(double, double, Color). Správanie tejto
metódy je jej veľmi podobné.
bod – súradnice počiatočného bodufarba – objekt určujúci farbu výplnepublic void vylejFarbu(Poloha bod, Farebnosť objekt)
Vyleje do zadaného bodu do obrázka farbu (určenú objektom), ktorá
sa odtiaľ rozšíri po okraje tej časti kresby v obrázku, v ktorej
sa zadaný bod nachádza. Na ďalšie informácie pozri metódu Plátno.vylejFarbu(double, double, Color). Správanie tejto
metódy je jej veľmi podobné.
bod – súradnice počiatočného boduobjekt – objekt určujúci farbu výplnepublic Farba vylejFarbu(Poloha bod, int r, int g, int b)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek, ktorá sa určeného bodu rozšíri po okraje
okolitej kresby. Na ďalšie informácie pozri metódu vylejFarbu(double x, double y, Color farba). Správanie tejto
metódy je odvodené od nej.
bod – súradnice počiatočného bodur – červená zložka farby; celé číslo v rozsahu 0 – 255g – zelená zložka farby; celé číslo v rozsahu 0 – 255b – modrá zložka farby; celé číslo v rozsahu 0 – 255Farba vytvorený podľa zadaných
zložiekvylejFarbu(Poloha, Color)public Farba vylejFarbu(Poloha bod, int r, int g, int b, int a)
Vyleje do zadaného bodu do obrázka farbu zadanú prostredníctvom
farebných zložiek a úrovne (ne)priehľadnosti, pričom farba sa
z určeného bodu rozšíri k okrajom okolitej kresby. Na ďalšie
informácie pozri metódu vylejFarbu(double x, double y,
Color farba). Správanie tejto metódy je odvodené od nej.
bod – súradnice počiatočného bodur – červená zložka farby; celé číslo v rozsahu 0 – 255g – zelená zložka farby; celé číslo v rozsahu 0 – 255b – modrá zložka farby; celé číslo v rozsahu 0 – 255a – úroveň (ne)priehľadnosti farby; celé číslo v rozsahu
0 – 255 (0 – neviditeľná farba; 255 – nepriehľadná farba)Farba vytvorený podľa zadaných
hodnôt parametrovvylejFarbu(Poloha, Color)public void vylejFarbu(GRobot ktorý)
Zadaný robot vyleje na svojej pozícii do obrázka svoju aktuálnu
farbu, ktorá sa odtiaľ rozšíri po
okraje okolitej kresby. Na ďalšie informácie pozri metódu vylejFarbu(double x, double y, Color farba). Správanie tejto
metódy je odvodené od nej.
ktorý – robot, ktorého poloha a farba sú použité na výplňpublic void negatív()
Pretvorí tento obrázok na svoj farebný negatív.
public void negativ()
Alias pre negatív.
public void bledší(double faktor)
Zvýši úroveň svetlosti tohto obrázka. Metóda používa rovnaký
spôsob zosvetlenia ako metóda Farba.svetlejšia(double).
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
faktor – faktor zosvetlenia – hodnota v rozsahu 0.0 – 1.0,
pričom krajné hodnoty (0.0 a 1.0) nie sú povolené; čím je
hodnota faktora nižšia, tým je zmena svetlosti výraznejšiatmavší(double)public void bledsi(double faktor)
Alias pre bledší.
public void svetlejší(double faktor)
Alias pre bledší.
public void svetlejsi(double faktor)
Alias pre bledší.
public void tmavší(double faktor)
Zníži úroveň svetlosti tohto obrázka. Metóda používa rovnaký
spôsob stmavenia ako metóda Farba.tmavšia(double).
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
faktor – faktor stmavenia – hodnota v rozsahu 0.0 – 1.0,
pričom krajné hodnoty (0.0 a 1.0) nie sú na použitie vhodné
(0.0 by stmavila farbu do čiernej a 1.0 by nevykonala žiadnu
zmenu svetlosti); čím je hodnota faktora nižšia, tým je
úroveň stmavenia výraznejšiabledší(double)public void tmavsi(double faktor)
Alias pre tmavší.
public void bledší()
Zvýši úroveň svetlosti tohto obrázka. Metóda používa rovnaký
spôsob zosvetlenia ako metóda Farba.svetlejšia().
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
Poznámka: Metóda používa predvolenú
hodnotu faktora zosvetlenia 0.7. Pozri aj bledší(faktor).
tmavší()public void bledsi()
Alias pre bledší.
public void svetlejší()
Alias pre bledší.
public void svetlejsi()
Alias pre bledší.
public void tmavší()
Zníži úroveň svetlosti tohto obrázka. Metóda používa rovnaký
spôsob stmavenia ako metóda Farba.tmavšia().
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
Poznámka: Metóda používa predvolenú
hodnotu faktora stmavenia 0.7. Pozri aj tmavší(faktor).
bledší()public void tmavsi()
Alias pre tmavší.
public void čiernobiely()
Upraví tento obrázok do odtieňov šedej s použitím priemerovania farebných zložiek. Je to rýchla metóda, ale výsledné odtiene nie sú v súlade s modelom ľudského vnímania farieb. Pozri aj čiernobiely(vyvážiťZložky).
Porovnanie rôznych metód prevodu do odtieňov šedej je v opise
metódy čiernobiely(vyvážiťZložky).
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
public void ciernobiely()
Alias pre čiernobiely.
public void odtieneŠedej()
Alias pre čiernobiely.
public void odtieneSedej()
Alias pre čiernobiely.
public void čiernobiely(boolean vyvážiťZložky)
Upraví tento obrázok do odtieňov šedej s možnosťou určenia predvoleného vyváženia farebných zložiek – podľa modelu ľudského vnímania farieb.
Ak je parameter vyvážiťZložky rovný true,
tak bude použité predvolené vyváženie zložiek, inak bude použité
priemerovanie, rovnako ako pri metóde čiernobiely().
Predvolené hodnoty vyváženia sú nasledujúce: 29,9 % červenej,
58,7 % zelenej a 11,4 % modrej. Ak chcete použiť vlastné váhy,
tak použite metódu čiernobiely(váhaČervenej, váhaZelenej, váhaModrej).

Porovnanie rôznych metód
prevodu do odtieňov šedej.
Obrázok vyššie porovnáva rôzne metódy prevodu obrázka do
odtieňov šedej. Vľavo hore je pôvodný farebný obrázok, vedľa neho
je obrázok prevedený metódou čiernobiely()
(priemerovanie zložiek), vľavo dole je verzia prevedená pomocou
tejto metódy s parametrom vyvážiťZložky rovným
true a vpravo dole je použitá metóda čiernobiely(váhaČervenej,
váhaZelenej, váhaModrej) s váhami nastavenými na hodnoty:
0.0 (červená), 0.3 (zelená) a 0.5
(modrá). To znamená, že pôvodná červená zložka je z odtieňov
elimiovaná a súčet zostávajúcich dvoch nie
je rovný 100 % (0,3 = 30 %; 0,5 = 50 %; čo je dohromady len 80 %).
Z toho je jasné, že výsledok bude tmavší. Obrázok vpravo dole
skutočne pôsobí akoby bol snímaný v odlišnom spektre
elektromagnetického vlnenia (čo je, samozrejme, falošný dojem,
pretože chýbajúcu informáciu nemôžeme od obrazu doplniť žiadnym
prevodom, ale môžeme aspoň nasimulovať taký efekt).
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
Obrázok nižšie ukazuje porovnanie metódy priemerovania a automatického vyváženia zložiek na staršej verzii predvolenej palety preddefinovaných farieb.
![]() |
![]() |
![]() |
a) predvolená paleta |
b) použitie metódy priemerovania |
c) použitie metódy vyváženia zložiek |
Porovnanie rôznych metód prevodu do odtieňov šedej. | ||
Použitý zdroj:
vyvážiťZložky – pravdivostná hodnota určujúca, či majú byť
odtiene vypočítané algoritmom vyvažovania farebných zložiekčiernobiely(),
čiernobiely(double, double, double),
monochromatický(Color),
farebnýFilter(Color),
farebnéTienidlo(Color)public void ciernobiely(boolean vyvážiťZložky)
Alias pre čiernobiely.
public void odtieneŠedej(boolean vyvážiťZložky)
Alias pre čiernobiely.
public void odtieneSedej(boolean vyvážiťZložky)
Alias pre čiernobiely.
public void čiernobiely(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Upraví tento obrázok do odtieňov šedej s možnosťou určenia vlastného vyváženia jednotlivých farebných zložiek. Táto metóda umožňuje úplne odfiltrovať alebo preexponovať niektorú farebnú zložku.
Porovnanie rôznych metód prevodu do odtieňov šedej je v opise
metódy čiernobiely(vyvážiťZložky).
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
váhaČervenej – hodnota určujúca mieru vyváženia červenej
farebnej zložkyváhaZelenej – hodnota určujúca mieru vyváženia zelenej
farebnej zložkyváhaModrej – hodnota určujúca mieru vyváženia modrej
farebnej zložkyčiernobiely(),
čiernobiely(boolean),
monochromatický(Color),
farebnýFilter(Color),
farebnéTienidlo(Color)public void ciernobiely(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Alias pre čiernobiely.
public void odtieneŠedej(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Alias pre čiernobiely.
public void odtieneSedej(double váhaČervenej,
double váhaZelenej,
double váhaModrej)
Alias pre čiernobiely.
public void monochromatický(Color farba)
Upraví tento obrázok do odtieňov zadanej farby. Monochromatická zložka, čiže zložka jasu (odtiene šedej), bude násobená farebnými zložkami zadanej farby. Výsledkom bude obrázok v odtieňoch zadanej farby. Ak zadáme čiernu farbu, získame čierny obrázok. Ak zadáme bielu, dostaneme čiernobiely obrázok. Ľubovoľná iná farba zafarbí obrázok do jej odtieňov.
Porovnanie rôznych efektov použitých na rovnaký obrázok je
v opise metódy farebnéTienidlo(farba).
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
farba – farba, do odtieňov ktorej bude obrázok prevedenýčiernobiely(),
čiernobiely(boolean),
čiernobiely(double, double, double),
farebnýFilter(Color),
farebnéTienidlo(Color)public void monochromaticky(Color farba)
Alias pre monochromatický.
public void jednofarebný(Color farba)
Alias pre monochromatický.
public void jednofarebny(Color farba)
Alias pre monochromatický.
public void farebnýFilter(Color farba)
Použije na tento obrázok zadaný farebný filter. Obrázok nadobudne vzhľad, ako keby sme sa na neho pozerali cez filter prepúšťajúci len zadanú farbu.
Porovnanie rôznych efektov použitých na rovnaký obrázok je
v opise metódy farebnéTienidlo(farba).
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
farba – farba filtračiernobiely(),
čiernobiely(boolean),
čiernobiely(double, double, double),
monochromatický(Color),
farebnéTienidlo(Color)public void farebnyFilter(Color farba)
Alias pre farebnýFilter.
public void farebnéTienidlo(Color farba)
Použije na tento obrázok zadané farebné tienidlo. Obrázok nadobudne vzhľad, ako keby sme sa na neho pozerali cez tienidlo, ktoré má zadanú farbu. Všetky farby v obrázku (ich zložky) budú posunuté smerom k zadanej farbe.
Poznámka: Metóda zachováva aj kanál priehľadnosti obrázka.
Nasledujúci obrázok zhromažďuje a porovnáva rôzne efekty použité na tú istú predlohu:

Porovnanie
rôznych efekty aplikovaných na ten istý obrázok.
V bloku A je pôvodný obrázok. Blok B obsahuje použitie efektu posterizácie s a bez algoritmu difúzie chyby (prvý riadok bloku je bez difúzie chyby, druhý s ňou). Stĺpce bloku sú posterizované postupne s použitím troch farieb (červenej, zelenej a modrej), šiestich farieb (pribudla tyrkysová, purpurová a žltá) a staršej verzie predvolenej palety preddefinovaných farieb.
V bloku C sú pod sebou použité efekty monochromatickosti, farebného filtra a farebného tienidla s červenou farbou. Blok D obsahuje vedľa seba použitie tých istých efektov so zelenou farbou a blok E s modrou farbou.
farba – farba tienidlačiernobiely(),
čiernobiely(boolean),
čiernobiely(double, double, double),
monochromatický(Color),
farebnýFilter(Color)public void farebneTienidlo(Color farba)
Alias pre farebnéTienidlo.
public void monochromatický(Farebnosť objekt)
Upraví tento obrázok do odtieňov farby zadaného objektu. Monochromatická zložka, čiže zložka jasu (odtiene šedej), bude násobená farebnými zložkami farby zadaného objektu. Výsledkom bude obrázok v odtieňoch jeho farby. Ak má objekt čiernu farbu, získame čierny obrázok. Ak má objekt bielu farbu, dostaneme čiernobiely obrázok. Ľubovoľná iná farba objektu zafarbí obrázok do jej odtieňov.
objekt – objekt, do odtieňov farby ktorého bude obrázok
prevedenýpublic void monochromaticky(Farebnosť objekt)
Alias pre monochromatický.
public void jednofarebný(Farebnosť objekt)
Alias pre monochromatický.
public void jednofarebny(Farebnosť objekt)
Alias pre monochromatický.
public void farebnýFilter(Farebnosť objekt)
Použije na tento obrázok farebný filter podľa farby zadaného objektu. Obrázok nadobudne vzhľad, ako keby sme sa na neho pozerali cez sklo farby zadaného objektu.
objekt – objekt určujúci farbu filtrapublic void farebnyFilter(Farebnosť objekt)
Alias pre farebnýFilter.
public void zrušPriehľadnosť()
Zruší priehľadnosť všetkých bodov v obrázku.
Pozor! Volanie tejto metódy neovplyvní
celkovú priehľadnosť obrázka ovplyvňovanú metódami
priehľadnosť(priehľadnosť),
priehľadnosť(objekt)
a upravPriehľadnosť(zmena).
Poznámka: Princíp toho, ako funguje
zrušenie priehľadnosti, je ukázaný v opise rovnomennej metódy
triedy Plátno – zrušPriehľadnosť.
public void zrusPriehladnost()
Alias pre zrušPriehľadnosť.
public boolean použiMasku(BufferedImage maska)
Použije na tento obrázok masku vyrobenú zo zadaného obrázka. Maska musí mať rovnaký rozmer ako obrázok, inak operácia zlyhá. Maska je vyrobená z kombinácie intenzity farieb a priehľadnosti jednotlivých bodov zadaného obrázka. Čím je bod masky tmavší, tým bude viditeľnejší, čím svetlejší, tým menej viditeľný. Jas je korigovaný aj zložkami priehľadnosti obidvoch bodov, teda ako pôvodného bodu na obrázku, tak aj bodu prevzatého z masky. Ak je súčin ich zložiek priehľadnosti rovný nule, tak bude výsledný bod neviditeľný. Viditeľnosť bodov v ostatných prípadoch záleží na výsledku výpočtov algoritmu. Napríklad úplne čierne úplne nepriehľadné body masky neovplyvnia priehľadnosť bodov na obrázku.
Upozornenie: Maska nie je pri
exporte kreslenia do inštancie
SVGPodpora použitá priamo, pretože pracuje
s rastrom obrázkov/plátien. Ak chcete do SVG podpory exportovať vlastnú masku, použite
kombináciu vlastnej
definície (vložením záznamu <mask
id="ID masky">…</mask>) a atribútu
mask="url(#ID masky)". Podrobnosti o SVG
maskách nájdete napríklad tu:
Clipping and masking –
SVG : Scalable Vector Graphics | MDN. Mozilla Developer
Network, developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Clipping_and_masking#masking.
Naposledy pristúpené: 28. januára 2023.
Môžete tiež použiť
orezávanie – pozri napríklad
tu.
maska – obrázok, ktorý bude použitý ako maskatrue ak bola operácia úspešnápublic boolean pouziMasku(BufferedImage maska)
Alias pre použiMasku.
public boolean vymažKresbu(BufferedImage kresba)
Použije na tento obrázok filter vyrobený zo zložky jasu kresby zadaného/predloženého obrázka. Zložka priehľadnosti bodov na obrázku, ktorý poslúži ako predloha pre filter nie je braná do úvahy. Hodnoty farebných zložiek úplne priehľadných (neviditeľných) bodov sú nepredvídateľné, preto by mal byť obrázok predlohy filtra úplne pokrytý nepriehľadnou kresbou. Svetlé/biele body na obrázku predlohy spôsobia vymazanie bodov na tomto obrázku (nastavenie hodnôt všetkých ich farebných zložiek a priehľadnosti na nulu). Tmavé/čierne body na predloženom obrázku nespôsobia na tomto obrázku žiadnu zmenu priehľadnosti. (Ostatné odtiene šedej a farebné body vo filtri spôsobia nastavenie úrovne priehľadnosti bodov obrázka na hodnotu jasu vypočítanú z priemeru farebných zložiek bodov filtra.) Obrázok s predlohou musí mať rovnaký rozmer ako tento obrázok, inak operácia zlyhá.
kresba – obrázok, ktorý bude použitý ako predloha pre filtertrue ak bola operácia úspešnápublic boolean vymazKresbu(BufferedImage kresba)
Alias pre vymažKresbu.
public boolean vyrobMasku(BufferedImage nováMaska)
Vyrobí z tohto obrázka do zadaného obrázka masku priehľadnosti.
Zadaný obrázok musí mať rovnakú veľkosť ako tento obrázok, inak
operácia zlyhá. Vyrobená maska bude obsahovať čierne body rôznej
priehľadnosti podľa priehľadnosti bodov pôvodného obrázka. Pôvodný
obsah zadaného obrázka (argumentu nováMaska) bude
nahradený.
nováMaska – obrázok, do ktorého bude nová maska vyrobená
(pôvodný obsah obrázka bude nahradený maskou)true ak bola operácia úspešnápublic BufferedImage vyrobMasku()
Vyrobí z tohto obrázka masku priehľadnosti. Metóda vytvorí masku
do nového obrázka (typu BufferedImage),
ktorý sama automaticky vytvorí a vráti ako svoj výsledok
(návratovú hodnotu). Nová maska bude obsahovať čierne body rôznej
priehľadnosti vychádzajúc z priehľadnosti bodov tohto obrázka.
public void rozmaž(int opakovanie,
int rozsah,
Color pozadie)
Rozmaže grafiku obrázka. Pre priehľadné (neviditeľné) body je pri procese rozmazania použitá zadaná farba pozadia. Opakovanie a rozsah majú z vizuálneho hľadiska podobný dopad na výsledný efekt rozmazania, ale matice lineárneho kruhového rozmazania sú vygenerované len do úrovne rozsahu 5 (vrátane). Pri zadaní vyššej hodnoty rozsahu získame rovnaký efekt ako keby sme zadali hodnotu 5. Ak chceme dosiahnuť vyššiu mieru rozmazania, musíme zvýšiť počet opakovaní procesu rozmazania (argument opakovanie). Čím vyššie sú hodnoty opakovania a rozsahu, tým vyššie sú nároky metódy na výpočtový výkon.
opakovanie – počet opakovaní rozmazaniarozsah – rozsah rozmazania; reálny efekt dosiahneme len
v rozsahu hodnôt 1 – 5, vyššie čísla sú zaokrúhlené na 5,
nižšie nespôsobia žiadne rozmazaniepozadie – farba použitá pri procese rozmazania pre
priehľadné bodypublic void rozmaž(int opakovanie,
Color pozadie)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(opakovanie, 1, pozadie);
opakovanie – počet opakovaní rozmazaniapozadie – farba použitá pre neviditeľné bodypublic void rozmaž(Color pozadie)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(1, 1, pozadie);
pozadie – farba použitá pre neviditeľné bodypublic void rozmaž(int opakovanie,
int rozsah,
Farebnosť pozadie)
Rozmaže grafiku obrázka. Pre priehľadné (neviditeľné) body je pri procese rozmazania použitá zadaná farba pozadia. Opakovanie a rozsah majú z vizuálneho hľadiska podobný dopad na výsledný efekt rozmazania, ale matice lineárneho kruhového rozmazania sú vygenerované len do úrovne rozsahu 5 (vrátane). Pri zadaní vyššej hodnoty rozsahu získame rovnaký efekt ako keby sme zadali hodnotu 5. Ak chceme dosiahnuť vyššiu mieru rozmazania, musíme zvýšiť počet opakovaní procesu rozmazania (argument opakovanie). Čím vyššie sú hodnoty opakovania a rozsahu, tým vyššie sú nároky metódy na výpočtový výkon.
opakovanie – počet opakovaní rozmazaniarozsah – rozsah rozmazania; reálny efekt dosiahneme len
v rozsahu hodnôt 1 – 5, vyššie čísla sú zaokrúhlené na 5,
nižšie nespôsobia žiadne rozmazaniepozadie – farba použitá pri procese rozmazania pre
priehľadné bodypublic void rozmaž(int opakovanie,
Farebnosť pozadie)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(opakovanie, 1, pozadie);
opakovanie – počet opakovaní rozmazaniapozadie – farba použitá pre neviditeľné bodypublic void rozmaž(Farebnosť pozadie)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(1, 1, pozadie);
pozadie – farba použitá pre neviditeľné bodypublic void rozmaž(int opakovanie,
int rozsah)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(opakovanie, rozsah, Svet.farbaPozadia());
To znamená, že pre priehľadné (neviditeľné) body je pri procese
rozmazania použitá aktuálna farba pozadia sveta (pozri: Svet.farbaPozadia(farba)).
opakovanie – počet opakovaní rozmazaniarozsah – rozsah rozmazaniapublic void rozmaz(int opakovanie,
int rozsah)
Alias pre rozmaž.
public void rozmaž(int opakovanie)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(opakovanie, 1, Svet.farbaPozadia());
To znamená, že pre priehľadné (neviditeľné) body je pri procese
rozmazania použitá aktuálna farba pozadia sveta (pozri: Svet.farbaPozadia(farba)).
opakovanie – počet opakovaní rozmazaniapublic void rozmaz(int opakovanie)
Alias pre rozmaž.
public void rozmaž()
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(1, 1, Svet.farbaPozadia());
To znamená, že pre priehľadné (neviditeľné) body je pri procese
rozmazania použitá aktuálna farba pozadia sveta (pozri: Svet.farbaPozadia(farba)).
public void rozmaz()
Alias pre rozmaž.
public void rozmaž(int opakovanie,
int rozsah,
int bgr,
int bgg,
int bgb)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(opakovanie, rozsah, new Farba(bgr, bgg, bgb));
opakovanie – počet opakovaní rozmazaniarozsah – rozsah rozmazaniabgr – červený komponent pozadiabgg – zelený komponent pozadiabgb – modrý komponent pozadiapublic void rozmaz(int opakovanie,
int rozsah,
int bgr,
int bgg,
int bgb)
Alias pre rozmaž.
public void rozmaž(int opakovanie,
int bgr,
int bgg,
int bgb)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(opakovanie, 1, new Farba(bgr, bgg, bgb));
opakovanie – počet opakovaní rozmazaniabgr – červený komponent pozadiabgg – zelený komponent pozadiabgb – modrý komponent pozadiapublic void rozmaz(int opakovanie,
int bgr,
int bgg,
int bgb)
Alias pre rozmaž.
public void rozmaž(int bgr,
int bgg,
int bgb)
Rozmaže grafiku obrázka. Dosiahneme rovnaký efekt, ako keby sme
volali metódu: rozmaž(1, 1, new Farba(bgr, bgg, bgb));
bgr – červený komponent pozadiabgg – zelený komponent pozadiabgb – modrý komponent pozadiapublic void rozmaz(int bgr,
int bgg,
int bgb)
Alias pre rozmaž.
public void upravJasKontrast(double jas,
double kontrast)
Upraví parametre jasu a kontrastu celého obrázka. Oba parametre môžu nadobúdať kladné aj záporné hodnoty. Na obrázkoch nižšie je vidno, ako sa zmení obrázok pri rôznych hodnotách týchto parametrov.

Zdrojový obrázok na ukážku úpravy
jasu a kontrastu
(verzia v mierne vyššom rozlíšení
je dostupná na prevzatie tu).
| -240,0 | -160,0 | -80,0 | 0,0 | 80,0 | 160,0 | 240,0 | ||
| -240,0 | ![]() | |||||||
| -160,0 | ||||||||
| -80,0 | ||||||||
| 0,0 | ||||||||
| 80,0 | ||||||||
| 160,0 | ||||||||
| 240,0 | ||||||||
| rôzne úrovne jasu | ||||||||
Ukážka rôznych úrovní jasu a kontrastu.

Zdrojový obrázok na ukážku úpravy jasu
a kontrastu
(verzia v mierne vyššom rozlíšení je
dostupná na prevzatie tu).
| -240,0 | -160,0 | -80,0 | 0,0 | 80,0 | 160,0 | 240,0 | ||
| -240,0 | ![]() | |||||||
| -160,0 | ||||||||
| -80,0 | ||||||||
| 0,0 | ||||||||
| 80,0 | ||||||||
| 160,0 | ||||||||
| 240,0 | ||||||||
| rôzne úrovne jasu | ||||||||
Ukážka rôznych úrovní jasu a kontrastu.
Poznámka: Úplne priehľadné (neviditeľné)
body nie sú spracované. Tento efekt ukazuje nasledujúci obrázok,
na ktorého vytvorenie bola použitá aj metóda zrušPriehľadnosť.
![]() |
![]() |
![]() |
| a) | b) | c) |
Ukážka vplyvu metódy upravJasKontrast na priehľadné
časti obrázka:
a) vygenerovaný obrázok s priehľadnými
časťami,
b) obrázok po volaní metód upravJasKontrast(-240, 160)
a zrušPriehľadnosť(),
c)
zvýraznenie pôvodne priehľadných častí, na ktoré nemalo volanie
metódy upravJasKontrast
žiadny vplyv.
Použité zdroje:
jas – reálnočíselná hodnota určujúca mieru zmeny jasu obrázka;
relevantné sú hodnoty v rozmedzí od −255.0 do 255.0kontrast – reálnočíselná hodnota určujúca mieru zmeny kontrastu
obrázka; relevantné sú hodnoty v rozmedzí od −255.0 do 255.0public void gamaKorekcia(double γ)
Upraví intenzitu farieb obrázka na základe hodnoty parametra gama (γ). Gama vyjadruje vzťah medzi vstupnou a výstupnou hodnotou intenzity farby, ktorý je najlepšie viditeľný na nasledujúcom grafe:
Graf vyjadrujúci
zmenu vstupnej veličiny na výstupnú pri rôznych hodnotách
faktora gama (γ).
Poznámka: Algoritmus môže principiálne prijímať akúkoľvek hodnotu γ, okrem nuly, ale tento prípad je v metóde ošetrený zadaním paušálnej hodnoty korekcie 65 025, takže aj v tom prípade produkuje metóda relatívne korektný výsledok. Záporné hodnoty sú tiež mimo rozsahu korektných hodnôt, ale metóda ich nefiltruje, pretože zadaním zápornej hodnoty sa dá získať síce nesprávny, ale zaujímavý výsledok. Odporúčaný rozsah hodnôt sa nachádza v rozmedzí 0,01 – 7,99.
Nasledujúci obrázok ukazuje vplyv rôznych úrovní gama korekcie
na dvoch obrázkoch, ktoré sú k dispozícii na prevzatie v opise
metódy upravJasKontrast.

Úprava dvoch obrázkov gama
korekciou s hodnotami (zľava): 0.01, 0.25,
0.5, 1.0, 2.0, 4.0
a 7.99.
Poznámka: Úplne priehľadné (neviditeľné) body nie sú spracované. Nasledujúci príklad vygeneruje kresbu s bublinkami, na ktorej je táto vlastnosť ukázaná.
Príklad:
Tento príklad vygeneruje obrázok s bublinkami, ktoré sa
vzájomne prekrývajú. Prekrývanie je riešené vymazaním
(spriehľadnením) tej časti kresby, ktorú bude tvoriť nasledujúca
nakreslená bublinka. Následne je na kresbu použitá gama korekcia
a metóda zrušPriehľadnosť(), čím sa
ukážu aj pôvodne spriehľadnené časti kresby, na ktoré nemala
gama korekcia vplyv.
// Generovanie náhodných bubliniek.Obrázokbublinky =newObrázok(400,400);Obrázokguma =newObrázok(400,400);hrúbkaČiary(5.5);for(inti =0; i <100; ++i) {náhodnáPoloha();smer(90);longpolomer =Svet.náhodnéCeléČíslo(30,50); guma.vyplň(čierna);farba(biela);kresliDoObrázka(guma);kruh(polomer); bublinky.vymažKresbu(guma);switch(i %3) {case0:farba(svetlotyrkysová);break;case1:farba(tyrkysová);break;case2:farba(tmavotyrkysová); }kresliDoObrázka(bublinky);kružnica(polomer);preskočVľavo(polomer *0.7);choďPoOblúku(90, polomer *0.7); }// Úprava obrázka s použitím gama korekcie a zrušenie priehľadnosti// bodov v obrázku.bublinky.gamaKorekcia(0.1); bublinky.zrušPriehľadnosť();
Výsledok:
![]() |
![]() |
Vľavo je verzia obrázka pred a vpravo po úprave
gama korekciou (γ = 0,1) s odhalením priehľadných častí kresby
metódou zrušPriehľadnosť().
Použitý zdroj:
γ – hodnota, ktorá určí mieru korekcie intenzity farieb
obrázka; vhodný rozsah hodnôt je zhruba v rozmedzí 0,01 – 7,99public void posterizuj()
Posterizuje obrázok podľa predvolenej palety preddefinovaných farieb. Pod posterizáciou sa rozumie nastavenie všetkých farieb na najbližšiu farbu v palete.
Poznámka: Táto metóda zruší priehľadnosť bodov pôvodného obrázka. Ak ju chcete zachovať, musíte vytvoriť a použiť masku.
![]() |
![]() |
Vľavo je verzia obrázka pred a vpravo po úprave touto metódou.
Porovnanie rôznych efektov použitých na rovnaký obrázok je
aj v opise metódy farebnéTienidlo(farba).
public void posterizuj(Color prváFarba, Color... ostatnéFarby)
Posterizuje obrázok podľa palety zadanej vo forme zoznamu farieb, pričom povinné je zadanie aspoň jednej farby. Pod posterizáciou sa rozumie nastavenie všetkých farieb na najbližšiu farbu v palete. Ak je zadaná len jedna farba palety, tak ňou bude obrázok jednoducho vyplnený.
Poznámka: Táto metóda zruší priehľadnosť bodov pôvodného obrázka. Ak ju chcete zachovať, musíte vytvoriť a použiť masku.
![]() |
![]() |
Vľavo je verzia obrázka pred a vpravo po úprave
touto metódou s parametrami: červená,
zelená, modrá,
čierna, biela,
šedá, žltá, tyrkysová, purpurová.
Porovnanie rôznych efektov použitých na rovnaký obrázok je
aj v opise metódy farebnéTienidlo(farba).
prváFarba – prvá farba palety na posterizáciuostatnéFarby – zoznam ostatných farieb palety na posterizáciuposterizuj(),
posterizuj(Color[]),
posterizuj(boolean),
posterizuj(boolean, Color, Color...),
posterizuj(boolean, Color[])public void posterizuj(Color[] paleta)
Posterizuje obrázok podľa palety zadanej vo forme poľa farieb. Pod posterizáciou sa rozumie nastavenie všetkých farieb na najbližšiu farbu v palete. Ak paleta obsahuje len jednu farbu, tak ňou bude obrázok jednoducho vyplnený.
Poznámka: Táto metóda zruší priehľadnosť bodov pôvodného obrázka. Ak ju chcete zachovať, musíte vytvoriť a použiť masku.
![]() |
![]() |
Vľavo je verzia obrázka pred a vpravo po úprave
touto metódou s parametrom:
«inštancia».paleta(32).
Porovnanie rôznych efektov použitých na rovnaký obrázok je
aj v opise metódy farebnéTienidlo(farba).
Použitý zdroj:
paleta – paleta na posterizáciuposterizuj(),
posterizuj(Color, Color...),
posterizuj(boolean),
posterizuj(boolean, Color, Color...),
posterizuj(boolean, Color[]),
početFarieb(),
paleta(int)public void posterizuj(boolean difúziaChyby)
Posterizuje obrázok podľa predvolenej palety preddefinovaných farieb a umožňuje
zvoliť, či má byť pri tomto procese použitý algoritmus difúzie
chyby. Pre posterizáciu platí to isté, čo je uvedené v opise
metódy posterizuj(). Algoritmus difúzie chyby
prenáša časť chyby zaokrúhlenia farieb na susedné pixely, čo vo
výsledku vyvolá optický klam – dojem, že posterizovaný obrázok má
v skutočnosti viac farieb, než obsahovala paleta použitá pri
posterizácii (čo nie je pravda).
Poznámka: Táto metóda zruší priehľadnosť bodov pôvodného obrázka. Ak ju chcete zachovať, musíte vytvoriť a použiť masku.
![]() |
![]() |
Vľavo je verzia obrázka pred a vpravo po úprave
touto metódou s parametrom: true.
Porovnanie rôznych efektov použitých na rovnaký obrázok je
aj v opise metódy farebnéTienidlo(farba).
difúziaChyby – pravdivostná hodnota určujúca, či má byť pri
posterizácii použitý algoritmus difúzie chybyposterizuj(),
posterizuj(Color, Color...),
posterizuj(Color[]),
posterizuj(boolean, Color, Color...),
posterizuj(boolean, Color[])public void posterizuj(boolean difúziaChyby,
Color prváFarba,
Color... ostatnéFarby)
Posterizuje obrázok podľa palety zadanej vo forme zoznamu
farieb, pričom povinné je zadanie aspoň jednej farby a umožňuje
zvoliť, či má byť pri tomto procese použitý algoritmus difúzie
chyby. Pre posterizáciu platí to isté, čo je uvedené v opise
metódy posterizuj(prváFarba,
ostatnéFarby). Algoritmus difúzie chyby prenáša časť chyby
zaokrúhlenia farieb na susedné pixely, čo vo výsledku vyvolá
optický klam – dojem, že posterizovaný obrázok má v skutočnosti
viac farieb, než obsahovala zadaná paleta (čo nie je pravda).
Poznámka: Táto metóda zruší priehľadnosť bodov pôvodného obrázka. Ak ju chcete zachovať, musíte vytvoriť a použiť masku.
![]() |
![]() |
Vľavo je verzia obrázka pred a vpravo po úprave
touto metódou s parametrami: true, červená, zelená,
modrá, čierna,
biela, šedá,
žltá, tyrkysová, purpurová.
Porovnanie rôznych efektov použitých na rovnaký obrázok je
aj v opise metódy farebnéTienidlo(farba).
difúziaChyby – pravdivostná hodnota určujúca, či má byť pri
posterizácii použitý algoritmus difúzie chybyprváFarba – prvá farba palety na posterizáciuostatnéFarby – zoznam ostatných farieb palety na posterizáciuposterizuj(),
posterizuj(Color, Color...),
posterizuj(Color[]),
posterizuj(boolean),
posterizuj(boolean, Color[])public void posterizuj(boolean difúziaChyby,
Color[] paleta)
Posterizuje obrázok podľa palety zadanej vo forme poľa farieb
a umožňuje zvoliť, či má byť pri tomto procese použitý algoritmus
difúzie chyby. Pre posterizáciu platí to isté, čo je uvedené v opise
metódy posterizuj(paleta). Algoritmus
difúzie chyby prenáša časť chyby zaokrúhlenia farieb na susedné
pixely, čo vo výsledku vyvolá optický klam – dojem, že posterizovaný
obrázok má v skutočnosti viac farieb, než obsahovala zadaná paleta
(čo nie je pravda).
Poznámka: Táto metóda zruší priehľadnosť bodov pôvodného obrázka. Ak ju chcete zachovať, musíte vytvoriť a použiť masku.
![]() |
![]() |
Vľavo je verzia obrázka pred a vpravo po úprave
touto metódou s parametrami: true,
«inštancia».paleta(32).
Porovnanie rôznych efektov použitých na rovnaký obrázok je
aj v opise metódy farebnéTienidlo(farba).
Použité zdroje:
difúziaChyby – pravdivostná hodnota určujúca, či má byť pri
posterizácii použitý algoritmus difúzie chybypaleta – paleta na posterizáciuposterizuj(),
posterizuj(Color, Color...),
posterizuj(Color[]),
posterizuj(boolean),
posterizuj(boolean, Color, Color...),
početFarieb(),
paleta(int)public int početFarieb()
Zistí počet farieb použitých v aktuálnej snímke obrázka. Metóda neberie do úvahy priehľadnosť farebných bodov, počíta farby len na základe ich farebných zložiek.
paleta(int),
paleta(int, int),
posterizuj(Color[]),
posterizuj(boolean, Color[])public int pocetFarieb()
Alias pre početFarieb.
public Farba[] paleta(int početFarieb)
Vyrobí paletu najpoužívanejších farieb vyskytujúcich sa
v aktuálnej snímke obrázka so zadaným maximálnym počtom farieb.
Metóda funguje rovnako ako metóda paleta(početFarieb, hranicaZdravia) s predvolenou hranicou
zdravia 256. (Ďalšie podrobnosti pozri v opise uvedenej
metódy.)
početFarieb – maximálny počet farieb, ktoré smie paleta
obsahovaťpaleta(int, int),
početFarieb(),
posterizuj(Color[]),
posterizuj(boolean, Color[])public Farba[] paleta(int početFarieb, int hranicaZdravia)
Vyrobí paletu najpoužívanejších farieb vyskytujúcich sa v aktuálnej snímke obrázka so zadaným maximálnym počtom farieb a hranicou zdravia 256. Metóda zaraďuje farby do palety podľa frekvencie ich výskytu (od najpoužívanejších po najmenej používané). Keď počet farieb, ktoré boli zaradené do palety presiahne zadaný maximálny počet farieb, tak sa metóda pokúsi vypočítať novú farbu ako priemer najbližšej farby a nasledujúcej zadanej farby. Hranica zdravia určuje povolenú vzdialenosť medzi ďalšou pridávanou položkou a jestvujúcou položkou palety (0 znamená, že do palety budú zaradené len prvé najpoužívanejšie položky). Metóda neberie do úvahy priehľadnosť farebných bodov, spracuje všetky body obrázka len na základe ich farebných zložiek a rovnako výsledná paleta bude zložená len z nepriehľadných farieb.
početFarieb – maximálny počet farieb, ktoré smie paleta
obsahovaťhranicaZdravia – maximálny vzdialenosť dvoch farieb
zaraďovaných do palety ako ich priemerpaleta(int),
početFarieb(),
posterizuj(Color[]),
posterizuj(boolean, Color[])public void svetlo(Obrázok osvetlenie)
Táto metóda použije na tento obrázok zadanú svetelnú masku.
Táto operácia nahradí pôvodný obsah obrázka. Správanie tejto
metódy je podobné ako správanie metódy svetlo(Obrázok
grafika, Obrázok osvetlenie) (pozrite si aj jej opis).
osvetlenie – iný obrázok, ktorého obsah bude použitý
na svetelnú úpravu bodov tohto obrázkasvetlo(Obrázok, Obrázok)public void svetlo(Obrázok grafika, Obrázok osvetlenie)
Táto metóda použije na obrázok zadaný v prvom parametri
(grafika) svetelnú masku zadanú v druhom parametri
(osvetlenie) a výsledok zlúči do tejto (this)
inštancie obrázka. Svetelný filter môže obsahovať ľubovoľné
farby. Pravidlom je, že zložka s hodnotou 0x80 je
neutrálna, hodnoty zložiek pod touto hranicou výsledný obrázok
stmavujú a nad touto hranicou zase zosvetľujú.
Príklad:
Tento príklad prečíta obrázok fotografie, upraví parametre robota tak, aby mohol rýchlo a ľahko vytvárať svetelnú masku so zeleným kruhovým osvetlením (ktoré je premiestňované podľa polohy myši) a masku použije na fotografiu.
importknižnica.*;publicclassSvetloObrázkaextendsGRobot{// Čítanie obrázka a vytvorenie jeho kópií// (len z dôvodu rýchleho získania obrázkov rovnakých rozmerov)…privatefinalstaticObrázokzdroj =Obrázok.čítaj("vuje-01.jpeg");privatefinalstaticObrázoksvetlo =newObrázok(zdroj);privatefinalstaticObrázokvýsledok =newObrázok(zdroj);privateSvetloObrázka() {// Úprava rozmerov a polohy okna (aj plátna):super(zdroj.šírka, zdroj.výška);Svet.zbaľ();Svet.vystreď();// Prispôsobenie vlastností robota:veľkosť(150);farba(newFarba(0x80FF80));cieľováFarba(newFarba(0x0080FF80,true));kresliDoObrázka(svetlo);použiKruhovýNáter();skry();// Prvé prekreslenie:pohybMyši(); }// Keby sme chceli zachovať svetlosť zvyšku obrázka, museli by sme// použiť na výplň svetelnej masky túto farbu:// ## private final static Farba neutrálna = new Farba(0x808080);@OverridepublicvoidpohybMyši() {// Vytvorenie svetelnej masky:svetlo.vyplň(tmavošedá);// ## svetlo.vyplň(neutrálna);skočNaMyš();kruh();// Použitie masky:výsledok.svetlo(zdroj, svetlo);// Nakreslenie výsledku:podlaha.obrázok(výsledok);// Keby sme chceli zobraziť len svetelnú masku:// ## podlaha.obrázok(svetlo);}publicstaticvoidmain(String[] args) {newSvetloObrázka(); } }
Pôvodné obrázky na prevzatie: vuje-01.jpeg, vuje-02.jpeg
Výsledok:
![]() |
![]() |
![]() |
Úprava obrázka vuje-01.jpeg – zľava doprava: pôvodný obrázok, svetelná maska, výsledok.
![]() |
![]() |
![]() |
Úprava obrázka vuje-02.jpeg – zľava doprava: pôvodný obrázok, svetelná maska, výsledok.
grafika – iný obrázok, ktorého obsah bude slúžiť ako predloha
osvetleného výsledku uloženého do tohto (this)
obrázkaosvetlenie – iný obrázok, ktorého obsah bude použitý
na svetelnú úpravu bodov výsledkusvetlo(Obrázok)public void prevráťZvislo()
Prevráti obrázok podľa vodorovnej osi – horná časť obrázka sa ocitne dole a naopak.
prevráťVodorovne()public void prevratZvislo()
Alias pre prevráťZvislo.
public void prevráťVertikálne()
Prevráti obrázok podľa vodorovnej osi –
horná časť obrázka sa ocitne dole a naopak. Metóda je zároveň
aliasom pre prevráťZvislo.
prevráťHorizontálne()public void prevratVertikalne()
Alias pre prevráťZvislo.
public void prevráťVodorovne()
Prevráti obrázok podľa zvislej osi – pravá časť obrázka sa ocitne vľavo a naopak.
prevráťZvislo()public void prevratVodorovne()
Alias pre prevráťVodorovne.
public void prevráťHorizontálne()
Prevráti obrázok podľa zvislej osi –
pravá časť obrázka sa ocitne vľavo a naopak. Metóda je zároveň
aliasom pre prevráťVodorovne.
prevráťVertikálne()public void prevratHorizontalne()
Alias pre prevráťVodorovne.
public void roluj(double Δx,
double Δy)
Posunie obsah obrázka o zadaný počet bodov v horizontálnom
a/alebo vertikálnom smere. Tá časť obrázka, ktorá opustí jeho
rozmery, bude stratená, pričom na protiľahlej strane vznikne
prázdna oblasť. Metóda má využitie napríklad pri posune hracej
plochy uloženej v obrázku, pričom musíme zabezpečiť, aby boli
vzniknuté prázdne časti plochy dokreslené. Ak chceme pretočiť
obrázok dookola (t. j. bez straty obsahu), musíme použiť metódu
pretoč.
Upozornenie: Je dôležité si uvedomiť, že pri pripojení plazmy k obrázku nemá rolovanie alebo pretáčanie samotného obrázka zmysel, pretože jeho obsah je vždy úplne nahradený generátorom plazmy. Na pretáčanie obsahu takého obrázka má zmysel použiť iba metódy plazmy.
Δx – posun v horizontálnom (vodorovnom) smereΔy – posun vo vertikálnom (zvislom) smerepublic void pretoč(double Δx,
double Δy)
Pretočí obsah obrázka o zadaný počet bodov v horizontálnom
a/alebo vertikálnom smere. Tá časť obrázka, ktorá by mala pri
pretočení opustiť jeho rozmery, sa objaví na protiľahlej strane.
Pretáčaním obrázka v ľubovoľnom smere nikdy nestratíme obrazovú
informáciu a spätným posunom dostaneme pôvodný obrázok. Ak
z rôznych dôvodov potrebujeme, aby sa pri pretáčaní obrázka tie
časti, ktoré opustia rozmery obrázka stratili a aby vzniknuté
prázdne časti zostali skutočne prázdne (pripravené na ďalšie
kreslenie), musíme použiť metódu roluj.
Upozornenie: Je dôležité si uvedomiť, že pri pripojení plazmy k obrázku nemá rolovanie alebo pretáčanie samotného obrázka zmysel, pretože jeho obsah je vždy úplne nahradený generátorom plazmy. Na pretáčanie obsahu takého obrázka má zmysel použiť iba metódy plazmy.
Δx – posun v horizontálnom (vodorovnom) smereΔy – posun vo vertikálnom (zvislom) smerepublic void pretoc(double Δx,
double Δy)
Alias pre pretoč.
public Farba farbaBodu(double x, double y)
Zistí farbu bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca. Funguje podobne
ako Plátno.farbaBodu(x,
y).
public Farba farbaBodu(Poloha objekt)
Zistí farbu bodu (jedného pixela) obrázka na súradniciach
určených polohou objektu. Funguje podobne ako farbaBodu(x, y), ale namiesto
jednotlivých súradníc sa spracuje poloha zadaného objekt.
public boolean farbaBodu(double x,
double y,
Color farba)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje so zadanou
farbou. Funguje podobne ako Plátno.farbaBodu(x, y, farba).
x – x-ová súradnica vyšetrovaného boduy – y-ová súradnica vyšetrovaného bodufarba – farba, ktorú chceme porovnať s farbou bodu na zadanej
pozíciitrue ak sú zadané súradnice v rámci rozmerov
obrázka a farba bodu na zadaných súradniciach sa zhoduje so
zadanou farbou (musia sa zhodovať všetky farebné zložky aj
úroveň priehľadnosti), inak falsepublic boolean farbaBodu(Poloha objekt, Color farba)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
zadaného objektu v súradnicovom priestore rámca zhoduje so zadanou
farbou. Funguje podobne ako farbaBodu(x, y, farba), ale namiesto jednotlivých
súradníc je zadaný objekt, ktorého poloha určuje vyšetrované
súradnice.
objekt – objekt, ktorého poloha určuje súradnice vyšetrovaného
bodufarba – farba, ktorú chceme porovnať s farbou bodu na pozícii
objektutrue ak je poloha objektu v rámci rozmerov
obrázka a farba bodu na jeho súradniciach sa zhoduje so
zadanou farbou (musia sa zhodovať všetky farebné zložky aj
úroveň priehľadnosti), inak falsepublic boolean farbaBodu(double x,
double y,
Farebnosť objekt)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje s farbou
zadaného objektu. Funguje podobne ako Plátno.farbaBodu(x, y, farba).
x – x-ová súradnica vyšetrovaného boduy – y-ová súradnica vyšetrovaného boduobjekt – objekt, ktorého farbu chceme porovnať s farbou bodu
na zadanej pozíciitrue ak sú zadané súradnice v rámci rozmerov
obrázka a farba bodu na zadaných súradniciach sa zhoduje
s farbou zadaného objektu (musia sa zhodovať všetky farebné
zložky aj úroveň priehľadnosti), inak falsepublic boolean farbaBodu(Poloha objekt, Farebnosť farebnosť)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
prvého zadaného objektu (v súradnicovom priestore rámca) zhoduje
s farbou druhého zadaného objektu. Funguje podobne ako
farbaBodu(x, y, farba), ale namiesto jednotlivých súradníc je
spracovaná poloha objektu.
objekt – objekt, ktorého poloha určuje súradnice vyšetrovaného
bodufarebnosť – objekt, ktorého farbu chceme porovnať s farbou bodu
na pozícii objektutrue ak je poloha objektu v rámci rozmerov
obrázka a farba bodu na jeho súradniciach sa zhoduje s farbou
zadaného objektu (musia sa zhodovať všetky farebné zložky aj
úroveň priehľadnosti), inak falsepublic boolean farbaBodu(double x,
double y,
int r,
int g,
int b)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje s farbou
zadanou prostredníctvom farebných zložiek.
(Úroveň priehľadnosti je nastavená na hodnotu 255,
čiže na úplne nepriehľadnú farbu.)
Funguje podobne ako Plátno.farbaBodu(x, y, farba), ale farba je
určená prostredníctvom farebných zložiek.
x – x-ová súradnica vyšetrovaného boduy – y-ová súradnica vyšetrovaného bodur – červená zložka farby, ktorú chceme porovnať s farbou
bodu na zadanej pozíciig – červená zložka farby, ktorú chceme porovnať s farbou
bodu na zadanej pozíciib – červená zložka farby, ktorú chceme porovnať s farbou
bodu na zadanej pozíciitrue ak sú zadané súradnice v rámci rozmerov
obrázka a farba bodu na zadaných súradniciach sa zhoduje
so zadanou farbou (musia sa zhodovať všetky farebné zložky aj
úroveň priehľadnosti), inak falsepublic boolean farbaBodu(double x,
double y,
int r,
int g,
int b,
int a)
Zistí, či sa farba bodu (jedného pixela) obrázka na zadaných
súradniciach v súradnicovom priestore rámca zhoduje s farbou
zadanou prostredníctvom farebných zložiek a úrovne priehľadnosti.
Funguje podobne ako Plátno.farbaBodu(x, y, farba), ale farba je
určená prostredníctvom farebných zložiek a úrovne priehľadnosti.
x – x-ová súradnica vyšetrovaného boduy – y-ová súradnica vyšetrovaného bodur – červená zložka farby, ktorú chceme porovnať s farbou
bodu na zadanej pozíciig – červená zložka farby, ktorú chceme porovnať s farbou
bodu na zadanej pozíciib – červená zložka farby, ktorú chceme porovnať s farbou
bodu na zadanej pozíciia – úroveň priehľadnosti farby, ktorú chceme porovnať
s farbou bodu na zadanej pozíciitrue ak sú zadané súradnice v rámci rozmerov
obrázka a farba bodu na zadaných súradniciach sa zhoduje
so zadanou farbou (musia sa zhodovať všetky farebné zložky aj
úroveň priehľadnosti), inak falsepublic boolean farbaBodu(Poloha objekt, int r, int g, int b)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
zadaného objektu (v súradnicovom priestore rámca) zhoduje
s farbou zadanou prostredníctvom farebných zložiek a úrovne.
(Úroveň priehľadnosti je nastavená na hodnotu 255,
čiže na úplne nepriehľadnú farbu.)
Funguje podobne ako farbaBodu(x, y, farba), ale namiesto
jednotlivých súradníc je spracovaná poloha objektu a farba je
určená prostredníctvom farebných zložiek.
objekt – objekt, ktorého poloha určuje súradnice vyšetrovaného
bodur – červená zložka farby, ktorú chceme porovnať s farbou
bodu na pozícii objektug – červená zložka farby, ktorú chceme porovnať s farbou
bodu na pozícii objektub – červená zložka farby, ktorú chceme porovnať s farbou
bodu na pozícii objektutrue ak je poloha objektu v rámci rozmerov
obrázka a farba bodu na jeho súradniciach sa zhoduje so
zadanou farbou (musia sa zhodovať všetky farebné zložky aj
úroveň priehľadnosti), inak falsepublic boolean farbaBodu(Poloha objekt, int r, int g, int b, int a)
Zistí, či sa farba bodu (jedného pixela) obrázka na súradniciach
zadaného objektu (v súradnicovom priestore rámca) zhoduje
s farbou zadanou prostredníctvom farebných zložiek a úrovne
priehľadnosti. Funguje podobne ako farbaBodu(x, y, farba), ale namiesto
jednotlivých súradníc je spracovaná poloha objektu a farba je
určená prostredníctvom farebných zložiek a úrovne priehľadnosti.
objekt – objekt, ktorého poloha určuje súradnice vyšetrovaného
bodur – červená zložka farby, ktorú chceme porovnať s farbou
bodu na pozícii objektug – červená zložka farby, ktorú chceme porovnať s farbou
bodu na pozícii objektub – červená zložka farby, ktorú chceme porovnať s farbou
bodu na pozícii objektua – úroveň priehľadnosti farby, ktorú chceme porovnať
s farbou bodu na pozícii objektutrue ak je poloha objektu v rámci rozmerov
obrázka a farba bodu na jeho súradniciach sa zhoduje so
zadanou farbou (musia sa zhodovať všetky farebné zložky aj
úroveň priehľadnosti), inak falsepublic double priehľadnosť()
priehľadnosť v rozhraní Priehľadnosťpriehľadnosť(double),
upravPriehľadnosť(double)public double priehladnost()
Alias pre priehľadnosť.
priehladnost v rozhraní Priehľadnosťpublic void priehľadnosť(double priehľadnosť)
Nastaví novú úroveň (ne)priehľadnosti
tohto obrázka, pričom jednotlivé body na obrázku môžu mať svoju
vlastnú úroveň priehľadnosti. Úroveň 0.0 znamená, že obrázok
nebude pri kreslení zobrazený. Úroveň 1.0 znamená, že jednotlivé
body obrázka budú zobrazené s ich vlastnou úrovňou priehľadnosti –
nepriehľadné body budú plne viditeľné. Úroveň priehľadnosti
obrázka nemá vplyv na jeho uloženie
do súboru, iba na jeho zobrazenie.
priehľadnosť – nová úroveň priehľadnosti (0.0 – 1.0)priehľadnosť(),
upravPriehľadnosť(double)public void priehladnost(double priehľadnosť)
Alias pre priehľadnosť.
public void priehľadnosť(Priehľadnosť objekt)
Skopíruje úroveň (ne)priehľadnosti zo zadaného objektu.
objekt – objekt určujúci novú úroveň priehľadnostipriehľadnosť(),
upravPriehľadnosť(double)public void priehladnost(Priehľadnosť objekt)
Alias pre priehľadnosť.
public void upravPriehľadnosť(double zmena)
Upraví úroveň (ne)priehľadnosti obráza. Pre viac informácií
o priehľadnosti pozri priehľadnosť.
zmena – hodnota, ktorou bude násobená aktuálna hodnota
priehľadnosti; príklady: 0.5 – priehľadnosť bude znížená
o polovicu, 2.0 – úroveň priehľadnosti bude zdvojnásobenápriehľadnosť(double),
priehľadnosť()public void upravPriehladnost(double zmena)
Alias pre upravPriehľadnosť.
public void ulož(String súbor)
Uloží obrázok do súboru. Prípona súboru musí byť .gif,
.png alebo .jpg (resp. .jpeg). Ak súbor
jestvuje, tak vznikne výnimka oznamujúca, že súbor so zadaným
menom už jestvuje. Ak chcete súbor prepísať, použite metódu
ulož(String súbor, boolean prepísať) s druhým parametrom
rovným true. Odporúčame pozrieť si opis uvedenej metódy,
pretože obsahuje užitočné príklady použitia a informácie v jej
opise sú platné aj pre túto metódu.
súbor – názov súboru s požadovanou príponouGRobotException – ak súbor jestvuje alebo bol zadaný názov
súboru s neplatnou príponoupublic void ulož(String súbor, boolean prepísať)
Uloží obsah obrázka do súboru. Prípona súboru musí byť
.gif, .png alebo .jpg
(resp. .jpeg).
Formát GIF je jedným z najstarších z pohľadu histórie
grafických formátov, ale stal sa obľúbeným, pretože umožňuje
tvoriť animované verzie obrázkov. Ak je inštancia obrázka
animovaná, tak táto metóda automaticky vytvorí a uloží animovanú
verziu GIFu. Implicitne pri tom použije niektoré jestvujúce
vlastnosti/nastavenia/stavy programovacieho rámca, napríklad
farba pozadia je zmiešaná
so všetkými polopriehľadnými bodmi, pretože formát GIF
nepodporuje čiastočnú priehľadnosť bodov a aktuálna hodnota
počtu opakovaní animácie
zároveň určí počet opakovaní uložený a používaný v tomto
súborovom formáte, pričom pri ukladaní má hodnota 0
rovnaký význam ako akákoľvek záporná hodnota, čiže nekonečný
počet opakovaní (na rozdiel od významu použitého v programovacom
rámci, kedy hodnota 0 znamená koniec animácie
a záporné hodnoty znamenajú nekonečný počet opakovaní).
Príklad:
Formát GIF je historickým formátom s určitými (najmä farebnými)
obmedzeniami, ale stále nachádza svoje použitie. Nasledujúci
príklad ukazuje ako takýto súbor vytvoriť s použitím programovacieho
rámca GRobot, ale na plnohodnotné (plnofarebné) uloženie
snímok animovaného obrázka odporúčame použiť sekvenciu súborov vo
formáte PNG, ktorú táto metóda vytvorí automaticky, ak nájde
v názve súboru zástupný znak * – pozri ďalší
príklad. (Znak * bol zvolený úmyselne, pretože na
nami používaných operačných systémoch ide o neplatný znak v rámci
názvov súborov.)
importknižnica.*;publicclassVytvorAnimovanýGIFextendsGRobot{// Inštancia obrázka, do ktorej budú ukladané snímky animácie lopty// a ktorá výslednú animáciu uloží do formátu GIF.privateObrázokanimovanýObrázok;// Zoznam modrých farieb použitých na tieňovanie lopty.privatefinalZoznam<Farba> farby =newZoznam<Farba>(newFarba(0,0,224),newFarba(16,16,232),newFarba(32,32,240),newFarba(48,48,248),newFarba(64,64,255));// Táto metóda je schopná nakresliť loptu vrátane jej prípadnej// deformácie.privatevoidkresliLoptu(doublesploštenieX,doublesploštenieY) {// Vždy pred kreslením lopty sa aktuálny obsah animovaného obrázka// vymaže:animovanýObrázok.vymaž();// Najprv spracujeme tieňovanie lopty. Na to treba obmedziť oblasť// kreslenia do obrázka na požadovaný tvar, čo zariadia nasledujúce// tri príkazy:nekresliTvary();kresliDo(elipsa(40+ sploštenieX,40+ sploštenieY));kresliTvary();// Nasledujúci blok kreslí tieňovanie lopty:// (Poznámka: Toto by sa dalo riešiť ajnáterom.)doublemenej =0;skoč(-12+ sploštenieX,12+ sploštenieY);for(Farbafarba : farby) {farba(farba);kruh(60+ menej); menej -=12; }skoč(12- sploštenieX, -12- sploštenieY);// Rozmažeme kresbu a zrušíme obmedzenie kreslenia do oblasti:animovanýObrázok.rozmaž(12);kresliVšade();// Na záver prekreslíme obrysy lopty, aby sme trochu zamaskovali// nie celkom esteticky rozmazané okraje:farba(farby.prvý());elipsa(40+ sploštenieX,40+ sploštenieY);farba(farby.daj(1));elipsa(40+ sploštenieX -1.5,40+ sploštenieY -1.5);elipsa(40+ sploštenieX -3.0,40+ sploštenieY -3.0); }// Odľahčená verzia metódy kresliaca nedeformovanú loptu.privatevoidkresliLoptu() { kresliLoptu(0,0); }// Súkromný konštruktor.privateVytvorAnimovanýGIF() {// Rozmer plátna bude o málo väčší oproti rozmeru obrázka:super(140,240);// Vypneme automatické prekresľovanieSvet.nekresli();// Vytvoríme nový obrázok, do ktorého bude ukladaná animácia;// určíme, že trvanie zobrazenia každej snímky bude 40 ms// a vykonáme nevyhnutné nastavenia robota, čo zahŕňa aj// presmerovanie jeho kreslenia do animovaného obrázka:animovanýObrázok =newObrázok(120,220); animovanýObrázok.trvanie(0.040);hrúbkaČiary(3);kresliDoObrázka(animovanýObrázok);zdvihniPero();skry();// Posunieme robot dozadu (nižšie na obrazovke) a začneme animáciu:dozadu(52);// Prvá (päťsnímková) fáza animácie deformuje loptu pri dopade:for(inti =0; i <=4; ++i) { kresliLoptu(2.0* i, -2.0* i);dozadu(2.0); animovanýObrázok.pridajSnímku(); }// Pri návrate deformovanej lopty do pôvodného tvaru jednu snímku// preskočíme…dopredu(2.0);// …a animujeme už len štyri fázy:for(inti =3; i >=0; --i) { kresliLoptu(2.0* i, -2.0* i);dopredu(2.0); animovanýObrázok.pridajSnímku(); }// Ďalšia fáza je výskok lopty do výšky:for(inti =14; i >=0; --i) { kresliLoptu();dopredu(1.0* i); animovanýObrázok.pridajSnímku(); }// A posledná fáza je jej návrat na zem:for(inti =0; i <=14; ++i) { kresliLoptu();dozadu(1.0* i); animovanýObrázok.pridajSnímku(); }// Vrátime robot domov, obnovíme mu kreslenie na plátno// a uložíme a spustíme animáciu:domov();kresliNaPodlahu(); animovanýObrázok.ulož("lopta.gif",true); animovanýObrázok.spusti();// Spustíme časovač:Svet.spustiČasovač(0.020); }// Reakcia na časovač – pravidelne prekresľuje animovaný obrázok, ktorého// animácia je vykonávaná automaticky (vnútornými mechanizmami sveta).@Overridepublicvoidtik() {if(Svet.neboloPrekreslené()) {podlaha.vymažGrafiku();obrázok(animovanýObrázok);Svet.prekresli(); } }// Hlavná metóda.publicstaticvoidmain(String... args) {// Skrytie sveta (okna aplikácie):Svet.skry();// Vytvorenie anonymnej inštancie tejto triedy (konštruktor triedy// odvodenej od robota vždy zabezpečí vytvorenie aplikácie):newVytvorAnimovanýGIF();// Automatické nastavenie veľkosti a polohy okna sveta// (t. j. aplikácie) a jeho zobrazenie:Svet.zbaľ();Svet.vystreď();Svet.zobraz(); } }
Výsledok:

Výsledný
obrázok – lopta.gif.
Príklad:
Sekvenciu súborov vo formáte PNG vytvoríte, ak namiesto názvu súboru zadáte šablónu v nasledujúcom tvare (dôležitá je prítomnosť aspoň jednej hviezdičky – zvýraznené červenou):
«prefix»*[«ľubovoľné znaky»*]«postfix».png
Príklady platných šablón a ukážky názvov prvých dvoch a niekoľkých ďalších náhodne zvolených súborov snímok v animovanej sekvencii (ak by animácia mala potrebný rozsah, čo najmä v poslednom prípade hraničí s reálnosťou):
srdce*.png – srdce1.png,
srdce2.png… srdce10.png…
lopta-**.png – lopta-01.png,
lopta-02.png… lopta-10.png…
lopta-102.png…
_algoritmus-****_.png –
_algoritmus-0001_.png,
_algoritmus-0002_.png…
_algoritmus-0010_.png…
_algoritmus-0102_.png…
_algoritmus-1024_.png…
_algoritmus-22800_.png…
Sekvencia_*2345*.PNG –
Sekvencia_000001.PNG,
Sekvencia_000002.PNG…
Sekvencia_000010.PNG…
Sekvencia_000102.PNG…
Sekvencia_001024.PNG…
Sekvencia_022800.PNG…
Sekvencia_10000000.PNG…
Na príkladoch je vidieť, že v šablóne je podstatný výskyt
prvého a posledného znaku *, pričom môže ísť aj
o ten istý znak (ak je jediný). Prípadné znaky medzi nimi sú
z pohľadu obsahu ignorované a do úvahy je vzatý len ich celkový
počet, ktorý prispeje k určeniu počtu cifier číslovania v názvoch
súborov snímok animácie.
Pozor! Ak sa týmto spôsobom pokúsite
uložiť obrázok, ktorý nemá definovanú ani jednu snímku animácie,
tak táto metóda uloží jediný súbor s poradovým číslom nula a ak
je tento súbor nájdený metódou čítaj(súbor)
pri pokuse o čítanie sekvencie súborov so zhodnou šablónou, tak ho
prečíta ako neanimovaný obrázok a už sa nepokúša hľadať ďalšie
súbory vyhovujúce kritériám šablóny názvov súborov animovanej
sekvencie.
Poznámka: Od verzie 2.18 sa PNG sekvencie
dajú jednoducho zapisovať aj do archívu (ZIP).
Výhodou je uchovanie celej animácie v jednom súbore, úspora
vnútornej pamäte programovacieho rámca a tiež automatické uchovanie
informácií o časovaní snímok (v samostatnej položke archívu).
Pozri aj príklad v opise metódy Obrázok.čítaj(archív, názovPoložky).
Podobne funguje komunikácia pri určovaní výsledného počtu snímok
ak je druhý parameter tejto metódy (prepísať) rovný
true a na pevnom disku jestvuje sekvencia s vyšším
alebo nulovým počtom snímok, tak pri zápise táto metóda vymaže
súbor s poradovým číslom nula a/alebo súbor s najbližším vyšším
poradovým číslom po skončení aktuálnej sekvencie. Tým je zaručené,
že metóda čítaj(súbor) prečíta rovnaký počet
snímok aký má aktuálna sekvencia.
importknižnica.*;publicclassVytvorSekvenciuPNGextendsGRobot{// Tieto konštanty určia rozmery indikátora stavu zobrazeného// a aktualizovaného na obrazovke počas tvorby a zápisu animácie do// sekvencie PNG súborov (v skutočnosti ide o polovičné hodnoty):privatefinalstaticdoublevýškaIndikátora =20.0;privatefinalstaticdoublešírkaIndikátora =160.0;// Táto konštanta určuje požadovaný počet snímok animácie (ak nie je podiel// 360.0 / početSnímok celé číslo, tak sa môže skutočný počet zvýšiť// o jednu snímku):privatefinalstaticintpočetSnímok =250;// Inštancia obrázka, do ktorej budú ukladané snímky vytváranej animácie// a ktorá ju uloží do seknvencie PNG súborov:privateObrázokanimovanýObrázok;
// Kreslenie indikátora priebehu.privatevoidkresliIndikátor(doublehotovo) {// Prepočítame percentuálnu hodnotu na počet pixelov:hotovo *= šírkaIndikátora;// Nastavíme hrúbku čiary tvarov indikátora:hrúbkaČiary(3.0);// Nakreslenie šedej výplne tej časti indikátora, ktorá reprezentuje// nedokončenú časť úlohy:farba(šedá);vyplňObdĺžnik(šírkaIndikátora, výškaIndikátora);// Nakreslenie čierneho obrysu rovnakej časti indikátora:farba(čierna);kresliObdĺžnik(šírkaIndikátora, výškaIndikátora);// Presunutie robota na správne miesto tak, aby bola „dokončená časť“// indikátora kreslená presne od ľavého okraja celého indikátora:skoč(hotovo - šírkaIndikátora,0);// Nakreslenie zelenej výplne tej časti indikátora, ktorá reprezentuje// dokončenú časť úlohy:farba(zelená);vyplňObdĺžnik(hotovo, výškaIndikátora);// Nakreslenie čierneho obrysu rovnakej časti indikátora:farba(čierna); kresliObdĺžnik(hotovo, výškaIndikátora); }// Metóda slúžiaca na vytvorenie animácie. Prijíma počet bodov, cez ktoré// má prechádzať animovaná krivka a požadovaný počet snímok (na túto// hodnotu máme zároveň definovanú konštantu; do tejto metódy ju posielame,// aby bola univerzálnejšia – vystrihnuteľná a použiteľná v inej// aplikácii).privatevoidvytvorAnimáciu(intpočetBodov,intpočetSnímok) {// Pole bodov, cez ktoré prechádza animovaná krivka:Bod[] čiara =newBod[početBodov];// Uloženie prvého bodu do poľa (zámerne je umiestnený mimo plátna,// aby nebolo vidno začiatok krivky – pôsobilo by to rušivo):skočNa(0, -Svet.výška() -10); čiara[0] =poloha();// Pridanie požadovaného počtu náhodných bodov// (okrem prvého a posledného):for(inti =1; i < početBodov -1; ++i) {náhodnáPoloha(); čiara[i] =poloha(); }// Uloženie posledného bodu do poľa (tiež je umiestnený mimo plátna,// aby nebolo vidno koniec krivky):skočNa(0,Svet.výška() +10); čiara[početBodov -1] =poloha();// Pole farieb použitých na nakreslenie krivky:Farba[] farby =newFarba[početBodov];// Stanovenie začiatočnej a koncovej farby krivky:Farbaprvá = červená;Farbaposledná = žltá;// Vypočítanie farebného prechodu medzi začiatočnou a koncovou farbou// s použitím lineárnej interpolácie na jednotlivé farebné zložky// (vznikne tým lineárny farebný gradient):for(inti =0; i < početBodov; ++i) farby[i] =newFarba( (int)Svet.lineárnaInterpolácia( prvá.červená(), posledná.červená(), (double)i / (double)početBodov), (int)Svet.lineárnaInterpolácia( prvá.zelená(), posledná.zelená(), (double)i / (double)početBodov), (int)Svet.lineárnaInterpolácia( prvá.modrá(), posledná.modrá(), (double)i / (double)početBodov));// Vypočítanie uhla, ktorý bude slúžiť ako prírastok riadiaceho uhla// animácie. Riadiaci uhol bude nadobúdať hodnoty medzi nulou// a tristošesťdesiat stupňami a tento meniaci sa uhol bude postupne// určovať počiatočné pootočenie robota kresliaceho krivku v rámci// jednotlivých snímok. Okrem tohto parametra sa na animovaných// snímkach nemení nič. Zvyšok algoritmu kreslenia krivky je úplne// rovnaký – prejsť všetkými bodmi, ktoré boli náhodne zvolené vyššie.doubleprírastok =360.0/ početSnímok;// Výroba jednotlivých snímok animácie:for(doubleuhol =0.0; uhol <360.0; uhol += prírastok) {// Vymazanie aktuálnej snímky:animovanýObrázok.vymaž();// Zahájenie niekoľkých cyklov kreslenia krivky, počas ktorých// bude rozmazávaná a opätovne prekresľovaná:for(intj =0; j <10; ++j) {// Presmerujeme kreslenie robota do animovaného obrázka:kresliDoObrázka(animovanýObrázok);// Nastavíme hrúbku kreslenej čiary:hrúbkaČiary(5.0/ (double)(j +1));// Skočíme na začiatok krivky:skočNa(čiara[0]);farba(farby[0]);smer(uhol);// Ak na snímke jestvuje kresba krivky (ak toto nie je prvá// snímka), tak ju rozmažeme:if(0!= j) animovanýObrázok.rozmaž(10,čierna);// Nakreslíme farebnú krivku (štruktúra try-catch je// potrebná, lebo metóda choďNaPoOblúku môže zlyhať; my však// jej prípadné zlyhanie ignorujeme):for(inti =1; i < početBodov; ++i)try{farba(farby[i]);choďNaPoOblúku(čiara[i]); }catch(Exceptione) {// (Prípadné chyby ignorujeme…)}// Vrátime robot domov, obnovíme mu kreslenie na plátno// podlahy:domov();kresliNaPodlahu();// Prekreslíme indikátor:kresliIndikátor((0.8* (uhol + ((prírastok * (double)(j +1)) /10.0))) /360.0);// A tiež svet (aby sa zmena indikátora prejavila):Svet.prekresli(); }// Tu prekreslíme snímku viac ráz cez seba. Keďže obsahuje mnoho// polopriehľadných bodov, má to význam. Výsledkom bude// zvýraznenie poloriehľadných bodov, ktoré vznikli pri rozmazaní.for(inti =0; i <2; ++i) animovanýObrázok.kresli(animovanýObrázok);// Pridáme snímku do animovaného obrázka:animovanýObrázok.pridajSnímku(); } }// Súkromný konštruktor.privateVytvorSekvenciuPNG() {// Upravíme rozmer plátna (ktorý zároveň určí rozmer obrázka):super(640,480);// Skryjeme robot:skry();// Vypneme automatické prekresľovanie:Svet.nekresli();// Automatické nastavenie veľkosti a polohy okna sveta// (t. j. aplikácie) a jeho zobrazenie:Svet.zbaľ();Svet.vystreď();// Vytvoríme nový obrázok, do ktorého bude ukladaná animácia:animovanýObrázok =newObrázok(Svet.šírka(),Svet.výška());// Určíme, že trvanie zobrazenia každej snímky bude 40 ms:animovanýObrázok.trvanie(0.040);// Nakreslíme počiatočný stav indikátora (prázdny):kresliIndikátor(0.0);// Prekreslíme svet, aby sa indikátor zobrazil používateľovi:Svet.prekresli();// Spustíme časomieru, pretože sme zvedaví ako dlho bude trvať// generovanie animácie:Svet.spustiČasomieru();// Spustíme výrobu animácie:vytvorAnimáciu(50, početSnímok);// Zastavíme časomieru a necháme výsledok vypísať na konzolu// (výpis sa zobrazí v okne terminálu BlueJa):doublečas =Svet.zastavČasomieru();System.out.println("Tvorba animácie trvala: "+Math.round(čas /60) +" min "+F(čas %60,2) +" s");// Opäť spustíme časomieru, lebo sme zvedaví ako dlho bude trvať// ukladanie PNG sekvencie:Svet.spustiČasomieru();// Vytvoríme priečinok, do ktorého bude sekvencia ukladaná:Súbor.novýPriečinok("sekvencia");// Uložíme sekvenciu obrázkov podľa šablóny (šablóna obsahuje názov// podpriečinka „sekvencia“):animovanýObrázok.ulož("sekvencia/nahodne-ciary-***.png",true);// Opäť zastavíme časomieru a vypíšeme výsledok (tiež na konzolu):čas =Svet.zastavČasomieru();System.out.println("Vytváranie sekvencie súborov trvalo: "+Math.round(čas /60) +" min "+F(čas %60,2) +" s");// Možno je to pre niekoho zbytočné, ale nakoniec nakreslíme// indikátor v úplne dokončenom stave (ak by náhodou zopár// nasledujúcich príkazov trvalo dlhšie):podlaha.vymažGrafiku(); kresliIndikátor(1.0);Svet.prekresli();// Vrátime robot domov, aby bola animácia kreslená korektne:domov();// A spustíme animáciu aj časovač:animovanýObrázok.spusti();Svet.spustiČasovač(0.040);// Na záver nastavíme čiernu farbu pozadia:Svet.farbaPozadia(čierna); }// Táto reakcia je automaticky spúšťaná počas zápisu (alebo čítania)// animovanej PNG sekvencie. Používame ju na aktualizovanie informácie// o stave zápisu zobrazenej na obrazovke pre používateľa.@Overridepublicvoidsekvencia(intkódSpracovania,Stringzdroj,Stringcieľ,longstav,longcelkovo) {// Pred každým kreslení indikátora vymažeme grafiku podlahy// a vrátime robot domov:podlaha.vymažGrafiku();domov();// Vypočítame percento dokončenia s tým, že 80 % bolo vykonaných// pri tvorbe animácie, takže teraz zobrazujeme už len priebeh zvyšných// 20 %:kresliIndikátor(0.8+ ((0.2* (double)stav) / (double)celkovo));// Prekreslíme obrazovku:Svet.prekresli(); }// Reakcia na časovač – pravidelne prekresľuje animovaný obrázok, ktorého// animácia je vykonávaná automaticky (vnútornými mechanizmami sveta).@Overridepublicvoidtik() {if(Svet.neboloPrekreslené()) {podlaha.vymažGrafiku();obrázok(animovanýObrázok);Svet.prekresli(); } }// Hlavná metóda.publicstaticvoidmain(String... args) {// Vytvorenie anonymnej inštancie tejto triedy (konštruktor triedy// odvodenej od robota vždy zabezpečí vytvorenie aplikácie):newVytvorSekvenciuPNG(); } }
Opis priebehu a výsledku:
Počas tvorby animácie bude v okne sveta aktualizovaný grafický ukazovateľ stavu činnosti:

Grafický ukazovateľ stavu
činnosti.
Kód spracovania reakcie sekvencia sme v príklade nepoužili. V tomto
prípade mal hodnotu konštanty ZÁPIS_PNG_SEKVENCIE. (V prípade ukladania animáce do formátu GIF
je hodnota rovná hodnote konštanty
ZÁPIS_GIF_ANIMÁCIE.)
Podľa nami nameraných hodnôt trvalo vytváranie sekvencie od štyroch do šesť a pol minúty. Po skončení fázy generovania (80 % ukazovateľa) pokračuje aplikácia fázou ukladania sekvencie do súboru (zvyšných 20 % ukazovateľa). Podľa nami nameraných hodnôt trvalo ukladanie sekvencie asi minútu a štyridsať sekúnd (s rozptylom desať sekúnd).
Výsledkom vykonania tohto príkladu bude sekvencia súborov vo
formáte PNG vytvorená na disku v priečinku sekvencie.
Prvý súbor bude mať názov nahodne-ciary-001.png
a posledný nahodne-ciary-251.png.
Po dokončení bude v okne aplikácie spustená vytvorená animácia.
![]() |
![]() |
Ukážky možného vzhľadu vytvorenej animáce – výsledok každého generovania je unikátny (plátno ukážok je úmyselne zmenšené). | |
Na 32-bitových operačných systémoch sa môže stať, že aplikácia nebude mať dostatok pamäte na vykonanie. V takom prípade skúste cez príkazový riadok operačného systému spustiť aplikáciu nasledujúcim príkazom potvrdeným v priečinku s preloženou aplikáciou:
java -Xmx1g VytvorSekvenciuPNG
súbor – názov súboru s požadovanou príponouprepísať – ak je true, prípadný jestvujúci
súbor bude prepísaný, inak sa správa rovnako ako metóda
ulož(String súbor)GRobotException – ak súbor jestvuje a parameter prepísať
je false alebo ak bol zadaný názov súboru
s neplatnou príponoupublic knižnica.apacheAntZIP.ZipEntry[] ulož(Archív archív, String názovPoložky)
Uloží obsah obrázka do archívu ako položku so zadaným názvom. Archív musí byť vopred otvorený na zápis. Ak je názov položky šablóna PNG sekvencie, tak bude do archívu pridaných toľko položiek, koľko by bolo vytvorených súborov sekvencie, pričom ich názvy budú korešpondovať s názvami súborov sekvencie. Ďalej pre túto metódu platí súhrn relevantných informácií uvedených v opisoch nasledujúcich dvoch metód:
ulož(súbor,
prepísať);Archív.pridajPoložku(názovPoložky, údajePoložky).Upozornenie: Táto metóda je použiteľná len v prípade, že je archív otvorený na zápis.
Pozri aj príklad v opise metódy Obrázok.čítaj(archív, názovPoložky).
archív – inštancia archívu, do ktorého má byť tento obrázok
pridaný ako položkanázovPoložky – názov položky v archíve alebo šablóna názvov
položiek, ak chceme zapísať PNG sekvenciu animácieZipEntry na vykonanie prípadných
ďalších úprav (nastavenie komentárov položiek, úprava ich dátumu
podľa vlastných potrieb a podobne)GRobotException – ak bol zadaný názov súboru s neplatnou
príponou, ak archív nie je otvorený na zápis, ak bol názov
položky zamlčaný (bola zadaná hodnota null)
alebo v prípade pokusu o vloženie duplicitnej položkyčítaj(Archív, String),
Archív.obrázok(String),
Archív.pridajPoložku(String, Obrázok)public knižnica.apacheAntZIP.ZipEntry[] uloz(Archív archív, String názovPoložky)
Alias pre ulož.
public boolean doSchránky()
Vloží obsah tohto obrázka do schránky.
Upozornenie: Obrázok je uchovaný v schránke len počas činnosti aplikácie robota. Po zatvorení okna sveta, je obrázok zo schránky odstránený.
true ak bola operácia úspešnáSchránka.obrázok(Image)public boolean doSchranky()
Alias pre doSchránky.
public static boolean porovnaj(Image obrázok1, Image obrázok2)
Porovná obsahy dvoch zadaných inštancií obrázkov. V prípade,
že sú oba argumenty tejto metódy tým istým obrázkom, tak je bez
ďalšej kontroly vrátená hodnota true. Ak ide o rôzne
objekty obrázkov, tak bude overená zhoda ich obsahu. Najskôr sú
porovnané rozmery obrázkov a ak sú zhodné, tak sú porovnané ich
rastre. Potom je podľa toho, či sú obsahovo zhodné alebo nie,
vrátená hodnota true alebo false.
obrázok1 – prvý porovnávaný obrázokobrázok2 – druhý porovnávaný obrázoktrue, inak
falsepublic boolean porovnaj(Image inýObrázok)
Porovná obsah tejto a zadanej inštancie obrázka. Najskôr sú
overené rozmery obrázkov a ak sú zhodné, tak sú porovnané ich
rastre a podľa toho, či sú obsahovo zhodné alebo nie, je vrátená
hodnota true alebo false.
inýObrázok – obrázok, s ktorým je porovnávaný obsah tejto
inštancietrue, inak falsepublic boolean máVlnenie()
Overí, či je definovaná inštancia vlnenia pre tento obrázok.
true ak je inštancia vlnenia definovaná;
false v opačnom prípadevlnenie(),
jestvujúceVlnenie(),
pridajVlnenie(),
pridajVlnenie(boolean),
pridajVlnenie(int),
pridajVlnenie(int, boolean),
odstráňVlnenie()public boolean maVlnenie()
Alias pre máVlnenie.
public Vlnenie vlnenie()
Vráti inštanciu vlnenia pre tento obrázok,
aby bolo možné s vlnením ďalej pracovať. Ak vlnenie nie je pre
tento obrázok definované, tak metóda definuje nové neaktívne
vlnenie s predvolenou úrovňou útlmu 26. (Overiť
to, či je definovaná inštancia vlnenia, je možné pomocou metódy
máVlnenie.) Naopak, metóda
jestvujúceVlnenie vráti inštanciu
vlnenia len v takom prípade, že jestvuje. (V opačnom
prípade vráti metóda jestvujúceVlnenie hodnotu null.)
Poznámka: Aby mohlo byť vlnenie automaticky vykonávané, tak v prípade vytvorenia novej inštancie ju táto metóda automaticky registruje vo svete grafického robota.
Upozornenie: Ak svet grafického robota
nemá aktívny časovač, tak vlnenie
nebude fungovať ani po jeho aktivácii. Táto metóda nespúšťa
časovač (ani vlnenie) automaticky! Účelom automatického
vytvorenia inštancie vlnenia touto metódou v prípade jej
neprítomnosti je len zabránenie vzniku chýb. Táto metóda nemá
nahradiť metódu pridajVlnenie.
Vlnenie
definovanej pre tento obrázok aj v takom prípade, že pred jej
volaním nebola inštancia definovanámáVlnenie(),
jestvujúceVlnenie(),
pridajVlnenie(),
pridajVlnenie(boolean),
pridajVlnenie(int),
pridajVlnenie(int, boolean),
odstráňVlnenie()public Vlnenie jestvujúceVlnenie()
Táto metóda vráti inštanciu vlnenia len v prípade, že jestvuje.
V opačnom prípade vráti hodnotu null, čo môže viesť
ku vzniku výnimky, ak sa programátor pokúsi použiť vrátenú
hodnotu bez overenia. Naopak, vrátenie inštancie
vlnenia aj v prípade, že ešte nebolo
definované zaručuje metóda vlnenie.
nullmáVlnenie(),
vlnenie(),
pridajVlnenie(),
pridajVlnenie(boolean),
pridajVlnenie(int),
pridajVlnenie(int, boolean),
odstráňVlnenie()public Vlnenie jestvujuceVlnenie()
Alias pre jestvujúceVlnenie.
public Vlnenie existujúceVlnenie()
Alias pre jestvujúceVlnenie.
public Vlnenie existujuceVlnenie()
Alias pre jestvujúceVlnenie.
public Vlnenie definovanéVlnenie()
Alias pre jestvujúceVlnenie.
public Vlnenie definovaneVlnenie()
Alias pre jestvujúceVlnenie.
public void pridajVlnenie()
Pridá alebo zresetuje vlnenie tohto obrázka. Ak nie je definované
alebo aktívne vlnenie pre tento obrázok, tak volanie tejto metódy
vytvorí a/alebo aktivuje novú inštanciu vlnenia s predvolenou
úrovňou útlmu 26.
Poznámka: Aby mohlo byť vlnenie automaticky vykonávané, tak v prípade vytvorenia novej inštancie ju táto metóda automaticky registruje vo svete grafického robota.
Ak by svet grafického robota nemal aktívny časovač, tak by vlnenie nemohlo fungovať, preto je časovač touto metódou spúšťaný automaticky.
Inštanciu vlnenia je možné získať a pracovať s ňou pomocou
metódy vlnenie alebo jestvujúceVlnenie.
Pozor! Ak vlnenie nie je definované,
tak metóda vlnenie definuje nové neaktívne
vlnenie s predvolenou úrovňou útlmu 26. Overiť to, či
je definovaná inštancia vlnenia, je možné pomocou metódy
máVlnenie. Metóda
jestvujúceVlnenie vráti inštanciu
vlnenia len v prípade, že jestvuje. V opačnom prípade vráti hodnotu
null, čo môže viesť ku vzniku výnimky, ak sa
programátor pokúsi použiť vrátenú hodnotu bez overenia.
Ak už je definovaná inštancia vlnenia, tak ju volanie tejto
metódy zresetuje upokojením hladiny a nastavením predvolenej
úrovne útlmu 26.
(Aktivácia je vykonaná v každom prípade.)
public void pridajVlnenie(boolean ajČasovač)
Pridá alebo zresetuje vlnenie tohto obrázka. Ak nie je definované
alebo aktívne vlnenie pre tento obrázok, tak volanie tejto metódy
vytvorí a/alebo aktivuje novú inštanciu vlnenia s predvolenou
úrovňou útlmu 26.
Poznámka: Aby mohlo byť vlnenie automaticky vykonávané, tak v prípade vytvorenia novej inštancie ju táto metóda automaticky registruje vo svete grafického robota.
Pozor! Ak svet grafického robota nemá
aktívny časovač, tak vlnenie
nebude fungovať. Táto metóda dovoľuje určiť, či má alebo nemá
byť časovač spustený automaticky. Umožňuje to parameter
ajČasovač.
Inštanciu vlnenia je možné získať a pracovať s ňou pomocou
metódy vlnenie alebo jestvujúceVlnenie.
Pozor! Ak vlnenie nie je definované,
tak metóda vlnenie definuje nové neaktívne
vlnenie s predvolenou úrovňou útlmu 26. Overiť to, či
je definovaná inštancia vlnenia, je možné pomocou metódy
máVlnenie. Metóda
jestvujúceVlnenie vráti inštanciu
vlnenia len v prípade, že jestvuje. V opačnom prípade vráti hodnotu
null, čo môže viesť ku vzniku výnimky, ak sa
programátor pokúsi použiť vrátenú hodnotu bez overenia.
Ak už je definovaná inštancia vlnenia, tak ju volanie tejto
metódy zresetuje upokojením hladiny a nastavením predvolenej
úrovne útlmu 26.
(Aktivácia je vykonaná v každom prípade.)
ajČasovač – ak je hodnota tohto parametra rovná
true, tak je v prípade jeho nečinnosti
automaticky spustený časovačmáVlnenie(),
vlnenie(),
jestvujúceVlnenie(),
pridajVlnenie(),
pridajVlnenie(int),
pridajVlnenie(int, boolean),
odstráňVlnenie()public void pridajVlnenie(int útlm)
Pridá alebo zresetuje vlnenie tohto obrázka. Ak nie je definované
alebo aktívne vlnenie pre tento obrázok, tak volanie tejto metódy
vytvorí a/alebo aktivuje novú inštanciu vlnenia so zadanou úrovňou
útlmu (pozri aj Vlnenie.útlm(útlm)).
Poznámka: Aby mohlo byť vlnenie automaticky vykonávané, tak v prípade vytvorenia novej inštancie ju táto metóda automaticky registruje vo svete grafického robota.
Ak by svet grafického robota nemal aktívny časovač, tak by vlnenie nemohlo fungovať, preto je časovač touto metódou spúšťaný automaticky.
Inštanciu vlnenia je možné získať a pracovať s ňou pomocou
metódy vlnenie alebo jestvujúceVlnenie.
Pozor! Ak vlnenie nie je definované,
tak metóda vlnenie definuje nové neaktívne
vlnenie s predvolenou úrovňou útlmu 26. Overiť to, či
je definovaná inštancia vlnenia, je možné pomocou metódy
máVlnenie. Metóda
jestvujúceVlnenie vráti inštanciu
vlnenia len v prípade, že jestvuje. V opačnom prípade vráti hodnotu
null, čo môže viesť ku vzniku výnimky, ak sa
programátor pokúsi použiť vrátenú hodnotu bez overenia.
Ak už je definovaná inštancia vlnenia, tak ju volanie tejto metódy zresetuje upokojením hladiny a nastavením zadanej úrovne útlmu. (Aktivácia je vykonaná v každom prípade.)
útlm – požadovaná úroveň útlmu vlnenia; odporúčané sú
hodnoty v rozmedzí 0 – 30; pozri aj Vlnenie.útlm(útlm)máVlnenie(),
vlnenie(),
jestvujúceVlnenie(),
pridajVlnenie(),
pridajVlnenie(boolean),
pridajVlnenie(int, boolean),
odstráňVlnenie(),
Vlnenie.útlm(int)public void pridajVlnenie(int útlm,
boolean ajČasovač)
Pridá alebo zresetuje vlnenie tohto obrázka. Ak nie je definované
alebo aktívne vlnenie pre tento obrázok, tak volanie tejto metódy
vytvorí a/alebo aktivuje novú inštanciu vlnenia so zadanou úrovňou
útlmu (pozri aj Vlnenie.útlm(útlm)).
Poznámka: Aby mohlo byť vlnenie automaticky vykonávané, tak v prípade vytvorenia novej inštancie ju táto metóda automaticky registruje vo svete grafického robota.
Pozor! Ak svet grafického robota nemá
aktívny časovač, tak vlnenie
nebude fungovať. Táto metóda dovoľuje určiť, či má alebo nemá
byť časovač spustený automaticky. Umožňuje to parameter
ajČasovač.
Inštanciu vlnenia je možné získať a pracovať s ňou pomocou
metódy vlnenie alebo jestvujúceVlnenie.
Pozor! Ak vlnenie nie je definované,
tak metóda vlnenie definuje nové neaktívne
vlnenie s predvolenou úrovňou útlmu 26. Overiť to, či
je definovaná inštancia vlnenia, je možné pomocou metódy
máVlnenie. Metóda
jestvujúceVlnenie vráti inštanciu
vlnenia len v prípade, že jestvuje. V opačnom prípade vráti hodnotu
null, čo môže viesť ku vzniku výnimky, ak sa
programátor pokúsi použiť vrátenú hodnotu bez overenia.
Ak už je definovaná inštancia vlnenia, tak ju volanie tejto metódy zresetuje upokojením hladiny a nastavením zadanej úrovne útlmu. (Aktivácia je vykonaná v každom prípade.)
útlm – požadovaná úroveň útlmu vlnenia; odporúčané sú
hodnoty v rozmedzí 0 – 30; pozri aj Vlnenie.útlm(útlm)ajČasovač – ak je hodnota tohto parametra rovná
true, tak je v prípade jeho nečinnosti
automaticky spustený časovačmáVlnenie(),
vlnenie(),
jestvujúceVlnenie(),
pridajVlnenie(),
pridajVlnenie(boolean),
pridajVlnenie(int),
odstráňVlnenie(),
Vlnenie.útlm(int)public void odstráňVlnenie()
Ukončí vlnenie a úplne odstráni inštanciu vlnenia tohto obrázka z prostredia programovacieho rámca GRobot.
public void odstranVlnenie()
Alias pre odstráňVlnenie.
public double rýchlosť()
Vráti aktuálnu rýchlosť prehrávania animácie (bez ohľadu na to,
či je práve animácia spustená alebo nie). Rýchlosť je vyjadrená
pomerne. Hodnota 1.0 znamená skutočnú rýchlosť určenú
hodnotami trvania zobrazenia snímok
animácie, 2.0 znamená dvojnásobnú rýchlosť a tak
podobne. Záporná hodnota znamená, že animácia je prehrávaná
pospiatku.
public double rychlost()
Alias pre rýchlosť.
public double rýchlosťAnimácie()
Vráti aktuálnu rýchlosť prehrávania animácie (bez ohľadu na to,
či je práve animácia spustená alebo nie). Rýchlosť je vyjadrená
pomerne. Hodnota 1.0 znamená skutočnú rýchlosť určenú
hodnotami trvania zobrazenia snímok
animácie, 2.0 znamená dvojnásobnú rýchlosť a tak
podobne. Záporná hodnota znamená, že animácia je prehrávaná
pospiatku.
public double rychlostAnimacie()
Alias pre rýchlosťAnimácie.
public void rýchlosť(double nováRýchlosť)
Upraví rýchlosť prehrávania animácie (bez ohľadu na to, či je
práve animácia spustená alebo nie). Rýchlosť je vyjadrená pomerne.
Hodnota 1.0 znamená skutočnú rýchlosť určenú hodnotami
trvania zobrazenia snímok animácie,
2.0 znamená dvojnásobnú rýchlosť a tak podobne. Záporná
hodnota znamená, že animácia bude prehrávaná pospiatku a nula
znamená, že animácia má byť zastavená (pričom pôvodná rýchlosť
prehrávania nebude zmenená).
nováRýchlosť – nová rýchlosť animácie; záporná hodnota
znamená smer prehrávania animácie pospiatku; nulová hodnota
nezmení skutočnú rýchlosť prehrávania, ale len zastaví
vykonávanie animácie (ak prebiehalo)public void rychlost(double nováRýchlosť)
Alias pre rýchlosť.
public void rýchlosťAnimácie(double nováRýchlosť)
Upraví rýchlosť prehrávania animácie (bez ohľadu na to, či je
práve animácia spustená alebo nie). Rýchlosť je vyjadrená pomerne.
Hodnota 1.0 znamená skutočnú rýchlosť určenú hodnotami
trvania zobrazenia snímok animácie,
2.0 znamená dvojnásobnú rýchlosť a tak podobne. Záporná
hodnota znamená, že animácia bude prehrávaná pospiatku a nula
znamená, že animácia má byť zastavená (pričom pôvodná rýchlosť
prehrávania nebude zmenená).
nováRýchlosť – nová rýchlosť animácie; záporná hodnota
znamená smer prehrávania animácie pospiatku; nulová hodnota
nezmení skutočnú rýchlosť prehrávania, ale len zastaví
vykonávanie animácie (ak prebiehalo)public void rychlostAnimacie(double nováRýchlosť)
Alias pre rýchlosťAnimácie.
public int početSnímok()
Vráti aktuálny počet snímok animácie uloženej v tomto obrázku. Nula znamená, že tento obrázok nie je animovaný.
Každá nová snímka je vnútorne reprezentovaná ako samostatná
kópia grafickej informácie obrázka, ktorá môže byť prenesená
z alebo do hlavnej grafiky obrázka. Tento proces prenosu môže byť
jednostranný (počas animácie) alebo obojstranný (pri zmene snímky
alebo pri ukladaní alebo čítaní obrázka zo súboru). To znamená, že
ak nie je spustená animácia, tak sa medzi snímkami môžeme posúvať
metódami prváSnímka, ďalšiaSnímka, predchádzajúcaSnímka,
predchádzajúcaSnímka a snímka(ktorá) a vtedy je zaručené, že sa pri posune medzi snímkami
zároveň stihnú aktualizovať grafické informácie, ktoré boli
medzičasom vykonané v hlavnej grafike obrázka. Naopak, ak je
animácia spustená, môže kedykoľvek nastať prepísanie hlavnej
grafiky grafikou niektorej snímky a prípadné zmeny sa nemusia
stihnúť uložiť. Počas procesu animácie (ktorý je automaticky
vykonávaný na pozadí) sa totiž údaje z hlavnej grafiky
z optimalizačných dôvodov neuchovávajú späť do snímok.
public int pocetSnimok()
Alias pre početSnímok.
public void pridajSnímku()
Pridá novú snímku na koniec animácie s aktuálnou (naposledy použitou) hodnotou trvania zobrazenia a s aktuálnou grafikou obrázka.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
public void pridajSnimku()
Alias pre pridajSnímku.
public void pridajSnímku(Image obrázok)
Pridá novú snímku na koniec animácie s aktuálnou (naposledy použitou) hodnotou trvania zobrazenia a so zadanou grafikou.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
obrázok – grafika novej snímkypublic void pridajSnimku(Image obrázok)
Alias pre pridajSnímku.
public void pridajSnímku(Image obrázok, double trvanie)
Pridá novú snímku na koniec animácie so zadanou grafikou a so zadanou hodnotou trvania jej zobrazenia.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
obrázok – grafika novej snímkytrvanie – čas zobrazenia snímky v sekundách s presnosťou
na tisícinypublic void pridajSnimku(Image obrázok, double trvanie)
Alias pre pridajSnímku.
public void vložSnímku(int indexSnímky)
Vloží novú snímku animácie na zadanú pozíciu s aktuálnou (naposledy použitou) hodnotou trvania zobrazenia a s aktuálnou grafikou obrázka.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)public void vlozSnimku(int indexSnímky)
Alias pre vložSnímku.
public void vložSnímku(int indexSnímky,
Image obrázok)
Vloží novú snímku animácie na zadanú pozíciu s aktuálnou (naposledy použitou) hodnotou trvania zobrazenia a so zadanou grafikou.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)obrázok – grafika novej snímkypublic void vlozSnimku(int indexSnímky,
Image obrázok)
Alias pre vložSnímku.
public void vložSnímku(int indexSnímky,
Image obrázok,
double trvanie)
Vloží novú snímku animácie na zadanú pozíciu so zadanou grafikou a so zadanou hodnotou trvania jej zobrazenia.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)obrázok – grafika novej snímkytrvanie – čas zobrazenia snímky v sekundách s presnosťou
na tisícinypublic void vlozSnimku(int indexSnímky,
Image obrázok,
double trvanie)
Alias pre vložSnímku.
public void vymažSnímku()
Vymaže aktuálnu snímku animácie a aktivuje najbližšiu dostupnú snímku. Ak to bola posledná snímka v obrázku, tak zostane nastavená jej grafika a prípadná prebiehajúca animácia sa zastaví.
public void vymazSnimku()
Alias pre vymažSnímku.
public void vymažSnímku(int indexSnímky)
Vymaže zadanú snímku animácie a ak to bola aktívna snímka, tak aktivuje najbližšiu dostupnú snímku. Ak to bola posledná zostávajúca snímka v tomto obrázku, tak zostane nastavená jej grafika a prípadná prebiehajúca animácia sa zastaví.
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)public void vymazSnimku(int indexSnímky)
Alias pre vymažSnímku.
public void ďalšiaSnímka()
Aktivuje nasledujúcu snímku animácie.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
public void dalsiaSnimka()
Alias pre ďalšiaSnímka.
public void predchádzajúcaSnímka()
Aktivuje predchádzajúcu snímku animácie.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
public void predchadzajucaSnimka()
Alias pre predchádzajúcaSnímka.
public void prváSnímka()
Aktivuje prvú snímku animácie.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
public void prvaSnimka()
Alias pre prváSnímka.
public void poslednáSnímka()
Aktivuje poslednú snímku animácie.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
public void poslednaSnimka()
Alias pre poslednáSnímka.
public void snímka(int indexSnímky)
Aktivuje zadanú snímku animácie.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok.
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)public void snimka(int indexSnímky)
Alias pre snímka.
public int snímka()
Vráti index aktívnej snímky animácie.
public int snimka()
Alias pre snímka.
public double trvanie()
Zistí hodnotu trvania zobrazenia aktívnej snímky. (Prípadne aktuálnu naposledy použitú hodnotu trvania, ak animácia nemá žiadne snímky.)
public double trvanie(int indexSnímky)
Zistí hodnotu trvania zobrazenia zadanej snímky. (Prípadne aktuálnu naposledy použitú hodnotu trvania, ak animácia nemá žiadne snímky.)
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)public double trvanieZobrazeniaSnímky()
Zistí hodnotu trvania zobrazenia aktívnej snímky. (Prípadne aktuálnu naposledy použitú hodnotu trvania, ak animácia nemá žiadne snímky.)
public double trvanieZobrazeniaSnimky()
Alias pre trvanieZobrazeniaSnímky.
public double trvanieZobrazeniaSnímky(int indexSnímky)
Zistí hodnotu trvania zobrazenia zadanej snímky. (Prípadne aktuálnu naposledy použitú hodnotu trvania, ak animácia nemá žiadne snímky.)
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)public double trvanieZobrazeniaSnimky(int indexSnímky)
Alias pre trvanieZobrazeniaSnímky.
public void trvanie(double trvanie)
Nastaví novú hodnotu trvania aktívnej snímky.
trvanie – nový čas zobrazenia aktívnej snímky v sekundách
s presnosťou na tisícinypublic void trvanie(int indexSnímky,
double trvanie)
Nastaví novú hodnotu trvania zadanej snímky.
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)trvanie – nový čas zobrazenia cieľovej snímky v sekundách
s presnosťou na tisícinypublic void trvanieZobrazeniaSnímky(double trvanie)
Nastaví novú hodnotu trvania aktívnej snímky.
trvanie – nový čas zobrazenia aktívnej snímky v sekundách
s presnosťou na tisícinypublic void trvanieZobrazeniaSnimky(double trvanie)
Alias pre trvanieZobrazeniaSnímky.
public void trvanieZobrazeniaSnímky(int indexSnímky,
double trvanie)
Nastaví novú hodnotu trvania zadanej snímky.
indexSnímky – index cieľovej snímky; platí to, čo pri všetkých
metódach pracujúcich s indexmi snímok – ak je táto hodnota
väčšia alebo rovná než je aktuálny počet snímok, tak bude
prepočítaná
tak, aby ukazovala na adekvátne vzdialenú snímku v rámci
cyklickej animácie (čiže hodnota rovná počtu snímok bude
presmerovaná na prvú snímku – s indexom nula, hodnota o jedno
vyššia na druhú – s indexom dva
a tak ďalej); záporné hodnoty budú prepočítané v opačnom
smere (od konca animácie)trvanie – nový čas zobrazenia cieľovej snímky v sekundách
s presnosťou na tisícinypublic void trvanieZobrazeniaSnimky(int indexSnímky,
double trvanie)
Alias pre trvanieZobrazeniaSnímky.
public boolean animujeSa()
Zistí, či je práve spustená animácia obrázka.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
true ak je práve spustená animácia obrázka,
false v opačnom prípadepublic int opakovaniaAnimácie()
Zistí, koľko opakovaní zostáva do ukončenia animácie. Hodnota
-1 znamená, že animácia má byť prehrávaná
donekonečna.
-1 v prípade nekonečne sa opakujúcej animáciepublic int opakovaniaAnimacie()
Alias pre opakovaniaAnimácie.
public int početOpakovaní()
Zistí, koľko opakovaní zostáva do ukončenia animácie. Hodnota
-1 znamená, že animácia má byť prehrávaná
donekonečna.
-1 v prípade nekonečne sa opakujúcej animáciepublic int pocetOpakovani()
Alias pre početOpakovaní.
public void opakovaniaAnimácie(int početOpakovaní)
Ak má tento obrázok nenulový počet snímok animácie, tak táto
metóda nastaví nový počet opakovaní animácie zostávajúci do
ukončenia animácie a to bez ohľadu na to, či je animácia spustená
alebo nie. Hodnota -1 znamená, že animácia má byť
prehrávaná donekonečna. Ak je zadaná nula, tak prípadná spustená
animácia bude zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void opakovaniaAnimacie(int početOpakovaní)
Alias pre opakovaniaAnimácie.
public void početOpakovaní(int početOpakovaní)
Ak má tento obrázok nenulový počet snímok animácie, tak táto
metóda nastaví nový počet opakovaní animácie zostávajúci do
ukončenia animácie a to bez ohľadu na to, či je animácia spustená
alebo nie. Hodnota -1 znamená, že animácia má byť
prehrávaná donekonečna. Ak je zadaná nula, tak prípadná spustená
animácia bude zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void pocetOpakovani(int početOpakovaní)
Alias pre početOpakovaní.
public void spusti()
Spustí animáciu s nekonečným počtom opakovaní v naposledy použitom smere prehrávania. Ak bola animácia už spustená, tak iba nastaví nekonečný počet opakovaní.
public void spustiAnimáciu()
Spustí animáciu s nekonečným počtom opakovaní v naposledy použitom smere prehrávania. Ak bola animácia už spustená, tak iba nastaví nekonečný počet opakovaní.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
public void spustiAnimaciu()
Alias pre spustiAnimáciu.
public void spusti(int početOpakovaní)
Spustí animáciu so zadaným počtom opakovaní v naposledy použitom smere prehrávania. Ak bola animácia už spustená, tak iba nastaví zadaný počet opakovaní. Ak je zadaný počet opakovaní rovný nule, tak je animácia zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void spustiAnimáciu(int početOpakovaní)
Spustí animáciu so zadaným počtom opakovaní v naposledy použitom smere prehrávania. Ak bola animácia už spustená, tak iba nastaví zadaný počet opakovaní. Ak je zadaný počet opakovaní rovný nule, tak je animácia zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void spustiAnimaciu(int početOpakovaní)
Alias pre spustiAnimáciu.
public void spustiDopredu()
Spustí animáciu dopredu s nekonečným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania a nastaví nekonečný počet opakovaní.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
public void spustiAnimáciuDopredu()
Spustí animáciu dopredu s nekonečným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania a nastaví nekonečný počet opakovaní.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
public void spustiAnimaciuDopredu()
Alias pre spustiAnimáciuDopredu.
public void spustiDopredu(int početOpakovaní)
Spustí animáciu dopredu so zadaným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania a nastaví zadaný počet opakovaní. Ak je zadaný počet opakovaní rovný nule, tak je animácia zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void spustiAnimáciuDopredu(int početOpakovaní)
Spustí animáciu dopredu so zadaným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania a nastaví zadaný počet opakovaní. Ak je zadaný počet opakovaní rovný nule, tak je animácia zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void spustiAnimaciuDopredu(int početOpakovaní)
Alias pre spustiAnimáciuDopredu.
public void spustiPospiatku()
Spustí animáciu pospiatku s nekonečným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania (pospiatku) a nastaví nekonečný počet opakovaní.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
public void spustiAnimáciuPospiatku()
Spustí animáciu pospiatku s nekonečným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania (pospiatku) a nastaví nekonečný počet opakovaní.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
public void spustiAnimaciuPospiatku()
Alias pre spustiAnimáciuPospiatku.
public void spustiPospiatku(int početOpakovaní)
Spustí animáciu pospiatku so zadaným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania (pospiatku) a nastaví zadaný počet opakovaní. Ak je zadaný počet opakovaní rovný nule, tak je animácia zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void spustiAnimáciuPospiatku(int početOpakovaní)
Spustí animáciu pospiatku so zadaným počtom opakovaní. Ak bola animácia už spustená, tak iba upraví smer prehrávania (pospiatku) a nastaví zadaný počet opakovaní. Ak je zadaný počet opakovaní rovný nule, tak je animácia zastavená.
Upozornenie: Počítadlo opakovaní sa vzťahuje na momenty reštartovania animácie, to znamená, že hodnota počítadla je znížená po prejdení animácie z konca na začiatok alebo naopak, podľa smeru prehrávania animácie. To znamená, že ak nie je nastavená správna snímka (začiatočná alebo koncová podľa smeru prehrávania), tak sa môže animácia skončiť hneď po jej spustení (ak malo byť vykonané len jedno opakovanie) alebo sa nevykoná celá, podľa toho, ktorá snímka bola práve aktívna.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
početOpakovaní – počet opakovaní animácie, po ktorom sa
animácia ukončí; hodnota -1 je rezervovaná pre
nekonečný počet opakovaní (v skutočnosti akákoľvek zadaná
záporná hodnota nastaví počet opakovaní na hodnotu
-1); hodnota 0 spôsobí zastavenie
animácie (ak náhodou prebieha)public void spustiAnimaciuPospiatku(int početOpakovaní)
Alias pre spustiAnimáciuPospiatku.
public void zastav()
Zastaví prehrávanie animácie tohto obrázka.
Poznámka: Pozri aj informácie o snímkach
uvedené v opise metódy početSnímok (tieto
informácie súvisia aj s vykonávaním animácie).
Táto metóda je vo viacerých prípadoch spúšťaná automaticky.
Napríklad po dokončení všetkých opakovaní animácie, nastavení počtu opakovaní alebo rýchlosti
prehrávania animácie na nulu, vymazaní všetkých snímok animácie a podobne. Ak animácia
prebiehala, tak vykonanie tejto metódy spustí prekryté reakcie
robota zastavenieAnimácie a/alebo rovnomennú reakciu aktívnej obsluhy
udalostí – zastavenieAnimácie.
public void zastavAnimáciu()
Alias pre zastav.
public void zastavAnimaciu()
Alias pre zastav.