Kuvatiedosto-ongelma Windows NT/2000:ssa

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 6.2.2002 16:10

Survossa mahdollisuus tehdä hyvinkin monipuolisia kuvallisia
esityksiä perustuu siihen yksinkertaiseen periaatteeseen, että
kuvat luodaan kerrostamalla vapaasti Survolla tehtyjä peruskuva-
tyyppejä. Tähän Survossa on pitkät perinteet. Sekä PostScript-
että kuvaruutugrafiikkaan on käytettävissä omat keinonsa.

Ohjelmoidessani kuvallisia toimintoja SURVO MM:ään päädyin
(Reijo Sundin suosituksesta) kuvaruutugrafiikassa käyttämään
Microsoftin erittäin joustavaa laajennettua metatiedosto-
tekniikkaa (Enhanced Metafile, EMF). Sehän sallii kuvaikkunoiden
vapaan skaalattavuuden kuvaruudulla ja hyvät yhteydet muihin
Windows-ohjelmiin (esim. Word).

Tällöin tuttuun INFILE-, OUTFILE-tyyliin sain kuvat kerrostumaan
entiseen tapaan ilman ongelmia.

Vaikka periaatetasolla kaikki onkin kunnossa eli kuvat kerrostuvat
oikein kaikissa Windowseissa, nyt on tullut ilmi, että metatiedostot
kasvavat kerrostettaessa eksponentiaalisesti!!! Win NT/2000-
ympäristöissä, kun taas esim. Win9X-puolella, jossa itse olen
pääasiassa työskennellyt, kasvu on luonnollisella tavalla lineaarista.

Kuultuani tästä ilmiöstä Reijolta, kehitin pienen koeohjelman
nähdäkseni, mistä todella on kysymys. Ohjelma näytti toteen sen
minkä jo mainitsin. Siis jos vaikka samaa kuvaa kerrostetaan
itsensä päälle toistuvasti, niin tiedostokoko kasvaa eri vaiheissa
eri Windowseilla karkeasti seuraavaan tyyliin: (luvut suhteellisia)

Kerros:       1 2 3 4  5  6  7   8   9  10   11   12 ...         30
Windows 98:   1 2 3 4  5  6  7   8   9  10   11   12 ...         30
Windows 2000: 1 2 4 8 16 32 64 128 256 512 1028 2048 ...  536870912

eli mentäessä monikymmenkertaisiin kerrostuksiin, jollaisia joissain
erikoissovelluksissa saatettaisiin tarvita, joudutaan NT/2000-puolella
mahdottomuuksiin. Tämän täytyy olla selvä Microsoftin puolella
tehty ohjelmointivirhe.

Niinpä lähetin tästä ongelmasta pari päivää sitten kyselyn
kansainväliseen, Windows-ohjelmointia koskevaan keskusteluryhmään
comp.os.ms-windows.programmer.win32
otsikolla "Metafile size problem".
Sainkin nopeasti vastauksen (yllättäen) Microsoftin palveluksessa
olevalta, grafiikkaohjelmointispesialistilta Feng Yuan'ilta,
joka tunnustaa asian olevan juuri niin kuin väitin.

Olen sen jälkeen käynyt muutaman kierroksen kirjeenvaihdon hänen
kanssaan ja saanut hänet lupaamaan, että hän tulee tavalla tai
toisella paikkaamaan tuon virheen.
Elän siis toivossa, että ongelma saadaan selvitetyksi pikaisesti,
vaikka toisaalta ei ole syytä suurempaan huoleen. Esim. kuvien
10-15-kertainen kerrostaminen ei vielä johda mihinkään suuriin
vaikeuksiin; levytilaa vain kuluu enemmän.
Win95/98/Me-versioissa ko. ongelmaa ei esiinny lainkaan.

Vaikka ehkä itsekin pystyisin tilapäisesti paikkaamaan virheen
suodattamalla Win2000/NT-metatiedostoista "löysät pois", on
tärkeätä, että Microsoft korjaa virheen. Ties muuten vaikka mitä
ilmenisi, kun julkaisevat uusia Windows-versioita.

Koska virhe on tehty jo vuosia sitten, syntyy väistämättä myös epäilys,
ettei Microsoftilla ole ehkä lainkaan tajuttu, miten tärkeää on voida
kerrostaa kuvia myös metatiedostojen avulla.

Haluan tällä viestillä osoittaa samalla, millaisten turhien ongelmien
kanssa ohjelmoija joutuu kamppailemaan, kun yrittää tulla saman-
aikaisesti eri Windowsien kanssa toimeen. Olisikohan ruoho yhtään
vihreämpää Linuxin aidan takana?

Seppo Mustonen

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.