Vlákno názorů k článku Pravda a mýty o GIFu od Lubos Lunak - Nedodrzovani nulove prodlevy je ve skutecnosti vlastnost. Existuji...

  • Článek je starý, nové názory již nelze přidávat.
  • 17. 8. 2006 9:46

    Lubos Lunak (neregistrovaný)
    Nedodrzovani nulove prodlevy je ve skutecnosti vlastnost. Existuji stranky, ktere pouzivaji animovane gify s nulovou prodlevou, aby takove silene efekty jako plameny, vybuchy a podobne nesmysly vypadaly co "nejlepe". Prohlizec snazici se animovat takovy gif plnou rychlosti samozrejme pak vytizi CPU na 100% ...
  • 17. 8. 2006 10:07

    Pavel Tišnovský
    Zlatý podporovatel
    Nezlobte se na me, ale neni to vlastnost - je to chyba nebo lez, kterou tvrdi vyrobce prohlizece svym uzivatelum/zakaznikum (a samozrejme zneuziti technologie temi, kdo ty vybuchy apod. vytvari). Pokud o sobe prohlizec tvrdi, ze podporuje zobrazovani GIFu, mel by je zobrazovat presne tak, jak to rika specifikace. Neni to nic tezkeho, naopak je tezsi detekovat nulove prodlevy a nahrazovat je nejakou "vhodnou" nenulovou hodnotou. Pokud neni v GIFu smycka, tak se zadne vytizeni na dlouhou dobu nekona.

    Prekvapuje me, ze vyrobci prohlizecu stoji pred celkem jednoduchym ukolem - zobrazovat korektne GIFy, PNGcka a JPEGy. Znam dost prohlizecu, ale ani jeden to nezvlada dobre na 100%, asi nejhorsi je to kupodivu u JPEGu (problemy IE+PNG jsou zname).
  • 17. 8. 2006 14:07

    huh
    Můžu se zeptat, kde se to v té specifikaci píše, jak se má pracovat s rámci, které mají Delay Time == 0 && User Input Flag == 0 ?
  • 17. 8. 2006 14:26

    Pavel Tišnovský
    Zlatý podporovatel
    Nevim jestli mate originalni text od CompuServe, ktery ma prvnich pet radku prazdnych a na sestem napsane:
    Cover Sheet for the GIF89a Specification

    (existuje vice verzi, nektere jsou predelane do HTML apod.)
    Pokud ano, muzu napsat i cisla radku, kde se ty informace vyskytuji.

    ---

    Nejprve je tam uveden dulezity pozadavek na dekoder:

    The decoder has the following primary responsibilities.

    - Process each graphic in the Data Stream in sequence, without
    delays other than those specified in the control information.
    ...

    A potom u popisu rozsirujiciho bloku:

    v) User Input Flag - Indicates whether or not user input is
    expected before continuing. If the flag is set, processing will
    continue when user input is entered. The nature of the User input
    is determined by the application (Carriage Return, Mouse Button
    Click, etc.).

    Values : 0 - User input is not expected.
    1 - User input is expected.

    When a Delay Time is used and the User Input Flag is set,
    processing will continue when user input is received or when the
    delay time expires, whichever occurs first.

    vii) Delay Time - If not 0, this field specifies the number of
    hundredths (1/100) of a second to wait before continuing with the
    processing of the Data Stream. The clock starts ticking immediately
    after the graphic is rendered. This field may be used in
    conjunction with the User Input Flag field.
  • 17. 8. 2006 23:33

    Lubos Lunak (neregistrovaný)
    Ehm, _je_ to vlastnost. Jestli se to tam da umyslne, je to vlastnost.

    > Pokud o sobe prohlizec tvrdi, ze podporuje zobrazovani GIFu, mel by je zobrazovat presne tak, jak to rika specifikace.

    Jak pravil Goethe, sediva je teorie a vecne zeleny je strom zivota. Chtel bych videt jedinou realnou aplikaci, ktera to tak dela, u cehokoliv netrivialniho. Sice by to bylo hezke, ale zivot je zly, co se da delat.

    > Neni to nic tezkeho

    To je s prominutim tezka naivita.

    > naopak je tezsi detekovat nulove prodlevy a nahrazovat je nejakou "vhodnou" nenulovou hodnotou

    delay = max( delay, 10 );

    > Pokud neni v GIFu smycka, tak se zadne vytizeni na dlouhou dobu nekona.

    Ta smycka u tech problematickych gifu samozrejme je, o tom je ten problem.
  • 18. 8. 2006 13:36

    su - \mathfrak{M}ĦĒNJMARCHON (neregistrovaný)
    Ale aspon su browsery, ktore konverguju :-)
  • 19. 8. 2006 16:05

    Pavel Tišnovský
    Zlatý podporovatel
    Nemůžu si pomoct, ale trošku to s tím zeleným stromem života přeháníte :-) Když je to vlastnost, je někde popsaná? Pokud ne, tak já - vhledem k tomu, že se prohlížeč nechová tak, jak mu předepisuje specifikace - to považuji za chybu a ne za vlastnost. Zrovinka tím uvedeným kódem:

    delay=max(delay, 10);

    si do budoucna zaděláváte na spoustu problémů.

    Prvním je, že až se uživatelé budou divit, proč některé animace vypadají jinak, než v dalších prohlížečích, asi tuto "vychytávku" budete muset v kódu znovu vyhledat, upravit a dát tam nějaké jiné magické číslo.

    Zadruhé, ta destítka je odněkud zjištěná, nebo je to zrovna číslo, které se Vám líbí? Nepamatuji se, že by se podobná konstanta někde ve specifikaci či alespoň v diskusních skupinách o souborových formátech objevila. Trošku mi to připomíná chování velkých SW firem, které si také standardy ohýbají podle své "nálady" (aby to za několik let zase změnily).

    Vím dobře o čem mluvím, protože podobné vychytávky se nám v minulosti vymstily - taky se trošku ohnul a "domyslel" standard a všichni byli (chvíli) spokojeni, ale jen do té doby, než uživatelé/zákazníci globálně přešli na vyšší verzi WWW prohlížeče a ty vychytávky se musely opravit (nemluvě o tom, že opravu většinou dělá někdo jiný než autor).