Vlákno názorů k článku Rastrová grafika v PostScriptu od Kaminar - Není mi moc jasná funkce "Bouding Boxu". Mohl...

  • Článek je starý, nové názory již nelze přidávat.
  • 20. 7. 2007 9:52

    Kaminar
    Není mi moc jasná funkce "Bouding Boxu". Mohl byste to, prosím, vysvětlit nebo odkázat na nějaký zdroj na internetu?
  • 23. 7. 2007 10:59

    Pavel Tišnovský
    Zlatý podporovatel
    Je to pomocná informace určená pro aplikace, které potřebují do nějakého dokumentu (například zalamovaného textu) vložit obrázek uložený v PostScriptu. Tato aplikace vůbec nemusí umět PostScript interpretovat a proto potřebuje o vkládaném obrázku vědět alespon oblast, ve které se obrázek nachází. Bounding box je obdélník minimální velikosti, ve kterém leží daný PostScriptový obrázek (jde o obdélník orientovaný ve směru souřadných os, tj. postačuje nám znalost dvou protilehlých vrcholů).

    Příklad: budu vytvářet textový procesor a abych mu mohl dát nálepku DTP :-), tak umožním vkládání EPS, tj. Encapsulated PostScriptu. Interpreter PostScriptu samozřejmě vytvářet nebudu, při vkládání EPS si pouze přečtu rozměry bounding boxu a v dokumentu pro něj vytvořím příslušné místo (text například může obdélník obtékat atd.). Při finálním výstupu do PostScriptu (co jiného než PS či PDF také generovat v DTP programu?) se pouze vezme obsah původního obrázku (jeho EPS soubor) a vloží se do exportovaného PS. Vzhledem k tomu, že na EPS jsou kladeny různé požadavky (nesmí se změnit grafický stav, nelze použít "showpage" atd.) je výsledkem validní PostScriptový soubor, který lze dále vytisknout či jinak zpracovat.

    Generování PostScriptu je samozřejmě řádově jednodušší, než jeho interpretace, protože není zapotřebí znát všechny "fígle", implementovat interpreter atd.
  • 23. 7. 2007 16:26

    Kaminar
    Děkuji za vyčerpávající výklad.

    Ale měl bych ještě jednu otázku k použitému příkladu s obrázkem Leny. V něm je uveden následující BoudingBox

    %%BoundingBox: 267 357 344 434

    ale rozměry a posun obrázku přesně nerespektují udaný BoundingBox.

    267.6 357.6 translate
    76.8 76.8 scale

    Proč?
  • 23. 7. 2007 17:39

    Pavel Tišnovský
    Zlatý podporovatel
    Je to z toho důvodu, že údaje o obalovém obdélníku by měly být integery (celá čísla) a aplikace tedy provedla převod z reálných čísel na celá čísla. Převod je pro dolní hranici (levý horní roh) v pořádku (zaokrouhlujeme dolů), ale mám dojem, že by horní hranice měla být o jedničku vyšší:

    267,6+76,8=344,4 a to by se mělo zaokrouhlit nahoru, tj. na 345

    Je to sice chyba o 1/72 palce, ale i tak by se to mohlo při soutisku barev projevit.