NETTIALBUMI


OHJELMASTA

Nettialbumi on opinnäytetyönä tehty ohjelma, jolla luodaan digikameran kuvista Internet-käyttöön selkeä web-albumi. Ohjelman tekoon on käytetty Borland Delphi 6 Personal –versiota.

Ohjelman ideana on olla vaihtoehto Internetistä löytyville vastaaville ohjelmille, joiden käyttö vaatii enemmän opettelua ja aikaa. Ohjelma on suunniteltu lähinnä peruskäyttäjille, joten siitä on pyritty tekemään nopeasti omaksuttava ja helppokäyttöinen.

Ohjelman luoman mallialbumin voi katsoa täältä.

TIEDOSTOT

Nettialbumi v1.0

Nettialbumi v1.0 Delphi 6 lähdekoodi (GPL lisenssin alaisena)

Jos kiinnostaa tarkempi selvitys ohjelmasta voi jatkaa sivun lukemista eteenpäin, jossa on opinnäytetyön tekstiosuus.


JOHDANTO

Internetin ollessa jo lähes arkipäivää ja digikameroiden tullessa yhä yleisemmiksi kotitalouksien keskuudessa ovat myös nettialbumit kasvattaneet suosiotaan. Nettialbumi on helppo ja hyvä tapa jakaa omat digikuvat ystävien ja sukulaisten kanssa. Nettialbumi on käytännössä yksinkertainen web-sivusto, joka jakautuu kahteen osaan. Ensimmäisenä ovat pääsivut, jotka antavat hyvän yleiskuvan albumin sisällöstä näyttämällä noin parikymmentä kuvaa sivulla pienoiskoossa. Jokainen pienoiskuva on linkki alasivulle, jossa on suurempi versio kuvasta, sen kuvaus ja yleensä kuvan päivämäärä.

Nykyään suurimmat valokuvausliikkeet tarjoavat nettialbumin tapaisia palveluita maksua vastaan, mutta sellaisen voi kuitenkin tehdä itse ilmaiseksi kuka tahansa joka osaa tehdä web-sivuja ja muokata kuvia. Tämä kuitenkin vaatii aikaa ja siksi nettialbumit luodaan yleensä automaattisesti käyttäen siihen tarkoitettua ohjelmaa, joka luo automaattisesti sivut ja muuttaa kuvat sopivan kokoisiksi.

Nettialbumien luontiin käytettäviä ohjelmia saa Internetistä sekä ilmaisina että kaupallisina ja niiden taso vaihtelee huonosta hyvään. Testattuani noin kymmenen eri ohjelmaa sain idean tehdä oman version. Syynä tähän oli, että kokeilemissani ohjelmissa oli usein joko aivan liikaa ominaisuuksia sujuvaan käyttöön tai ne eivät olleet erityisen käyttäjäystävällisiä. Osa ohjelmista oli vaikeakäyttöisiä sellaisille, jotka eivät ole erityisen perehtyneitä tietokoneohjelmistojen käyttöön tai eivät muutoin ole kiinnostuneita tietokoneen käytöstä.

Alun perin ajattelin ensin tehdä laajemman ohjelman, joka ominaisuuksiltaan ja käytettävyydeltään toimisi monella tasolla. Yhtenä vaihtoehtona olisi ollut esimerkiksi nopea albumin luonti ilman tarpeettomia asetuksia tai sitten toisaalta ammattilaisille tarkoitettu versio, jossa olisi kaikki mahdolliset säätömahdollisuudet. Työmäärä jälkimmäisessä vaihtoehdossa olisi kuitenkin kasvanut niin suureksi, ettei sitä olisi millään saanut ajoissa valmiiksi, joten tyydyin tekemään yksinkertaisemman version.


OHJELMAN SUUNNITTELU

Tarvittavien ominaisuuksien valitseminen

Koska ohjelman tarkoituksena oli olla mahdollisimman helppokäyttöinen, pyrin valitsemaan siihen mukaan vain välttämättömät ominaisuudet. Käytyäni läpi muutamia ohjelmia tarkastellen niistä löytyviä tarpeellisia perustoimintoja päädyin siihen tulokseen, että riittää kun käyttäjä saa valita kuvat, kirjoittaa niille kuvaukset ja antaa albumille otsikon. Myös sivun väriteeman valinta ja kuvien päiväyksen lisääminen automaattisesti halutessa tuntui perusasetuksilta. Lisäsin mukaan vielä muutaman lisäominaisuuden, jottei ohjelmasta tulisi liian pelkistetty. Valitsin ohjelmaan mahdollisuuden lisätä jokaiselle sivulle alatunnisteen, johon voi lisätä esimerkiksi tekijänoikeushuomautuksen. Saadakseni ohjelmaan edes hiukan omaperäisyyttä lisäsin myös vaihtoehdon piirtää kuville näyttävät varjoefektit.

Sovelluskehitysympäristön valinta

Alusta saakka oli selvää että kohdekäyttöjärjestelmä tulisi olemaan Windows, koska lähes kaikkien digikameroiden omat ohjelmistot olivat Windows -käyttöjärjestelmille. Päätin siis etsiä niille hyvän ja monipuolisen sovelluskehitysympäristön ja Borlandin tuotteet vaikuttivat parhaimmilta, koska niissä oli mahdollista kääntää ohjelma yhdeksi tiedostoksi, joka ei tarvitse lisäkirjastoja tai tiedostoja toimiakseen. Tämä lisäsi käyttäjäystävällisyyttä, koska käyttäjän ei tarvinnut murehtia, että hänellä olisi kaikki tarvittavat sekä ajan tasalla olevat lisäkirjastot. Borlandin tuotteissa oli myös hyvä komponenttisysteemi, joka osoittautuikin tarpeelliseksi myöhemmässä vaiheessa. Vaihtoehtoina olivat Borland C++ Builder sekä Borland Delphi, joka käyttää Object Pascal -kieltä. Päädyin Delphiin, koska siitä oli saatavilla pienikokoinen ilmaisversio ja koska sillä tehdyt ohjelmat voidaan kääntää kohtuullisen helposti Linuxille käyttäen Borland Kylixiä, joka on Delphin Linux -versio.

Käyttöliittymän suunnittelu

Suunnittelin alun perin niin, että ohjelmassa olisi ollut vain yksi toiminnallinen vaihe, mutta tämä olisi johtanut siihen, mitä eniten vieroksuin kokeilemissani ohjelmissa eli niissä olisi ollut liikaa valittavia ja muokattavia asioita kuvaruudulla. Päätin siis jakaa ohjelman erilaisiin vaiheisiin. Ajattelin että ohjelman käynnistyessä olisi hyvä antaa aloitusohjeita ohjelman käyttämiseen, joten ensimmäiseksi vaiheeksi tulisi jonkinlainen ohjeruutu. Toiseksi vaiheeksi suunnittelin toiminnallisen osuuden, jossa kuvia lisätään ja annetaan niille mahdollisesti kuvaukset. Kolmanneksi ajattelin että albumin yleiset asetukset voisivat olla oma vaiheensa. Lopuksi päätin että albumin luonnin aikana voisi ruudulla näkyä sen eteneminen, joten neljänneksi vaiheeksi tulisi näkymä, jossa luonnin kokonaistila ja yksittäisten vaiheiden tapahtumat näkyvät.

Ohjelma käyttö koostuisi siis neljästä vaiheesta:

1. Tietoja ohjelmasta ja aloitusohjeet
2. Kuvien valinta ja niiden kuvausten kirjoittaminen
3. Asetusten valinta, kuten väriteema ja otsikko
4. Luonnin eteneminen ja vaiheet

Vaiheiden määrän ollessa pieni päätin, että ne kaikki voitaisiin luoda hyvin samalle lomakkeelle ja näyttää tarpeen mukaan ja näin säästyä usean lomakkeen hallinnan vaivalta. Samalla mieleeni tuli että voisin käyttää ohjelmassa navigoimiseen velhoikkunoiden tapaista menetelmää, jossa on vaiheita taakse- ja eteenpäin siirtävät napit. Näin alustava suunnitelma oli valmis ja päätin jättää tarkemmat ulkoasuun ja toimintaan liittyvät asiat itse ohjelman toteuttamisen yhteyteen, koska tekemisen yhteydessä näkee parhaiten mikä tapa tai keino on toimivin.


OHJELMAN TOTEUTUS

Ohjelman perusrunko

Koska olin valinnut ohjelman käyttämiseen ”velhomaisen” tyylin, oli niissä tavalliseen tapaan ylhäällä lyhyt kuvaus missä vaiheessa ollaan ja mitä tulisi tehdä. Siispä päätin lisätä ohjelman yläreunaan palkin jossa on ohjelman logo ja kuvaus menossa olevasta vaiheesta. Vastaavasti alareunaan tuli palkki, jossa on takaisin- ja eteenpäin-napit. Alapalkkiin lisäsin myös nettialbumin projektin avaamista ja tallentamista varten napit. Keskellä olevan alueen jätin eri vaiheiden näkymille.

Vaihe 1. (Aloitus)

Ensimmäisen vaiheen ollessa lähinnä tiedottava, ei sen toteuttaminen ollut hankalaa, koska käytännössä piti vain kirjoittaa aloitukseen tarkoitettu teksti.


Vaihe 2. (Kuvat)

Toinen vaihe osoittautui ohjelman työläimmäksi osaksi. Sain tehtyä hyvältä näyttävän ulkoasun, jossa oli tiedostolista, kuva valitusta tiedostosta sekä paikka kuvauksen kirjoittamiselle. Oikeaan laitaan lisäsin myös napit kuvien lisäämiselle sekä tiedostolistasta poistamiselle.


Aluksi käytin kuvien lisäämiseen Delphin OpenPictureDialog-komponenttia, mutta se oli vaikeakäyttöinen suurien kuvamäärien kanssa ja näytti esikatselussa kuvan vain yhdestä tiedostosta kerrallaan. Etsin netistä parempaa valmiiksi tehtyä komponenttia, jolla olisin saanut hyvän listan kuvista, mutta en löytänyt ainuttakaan. Vaihtoehtojen ollessa vähissä päätin, että voisin yrittää itse tehdä komponentin kyseiseen tarkoitukseen ja ryhdyin tutkimaan Delphin ohjeita komponenttien rakentamisesta ja ryhdyin kokeilemaan oman komponentin ohjelmoimista.

Ajattelin, että komponentti voisi näyttää jokaisesta kuvasta pienen mallikuvan ja sisältäisi oman sisäänrakennetun valintasysteemin. Parin päivän testauksen jälkeen sain lopulta valmiiksi oman Kuvanselaus-komponenttini, jonka teko olikin huomattavasti helpompaa kuin alun perin luulin sen olevan. Se teki kohtuullisen nopeasti selkeän katalogin halutun kansion sisältämistä kuvista sekä tarjosi komponenteille tyypillisiä tapahtumia ja toimintoja. Olin nyt tyytyväinen kyseiseen komponenttiin ja päätin tehdä kuvien lisäykselle kokonaan oman näkymän.

Kyseiseen näkymään tuli lyhyt ohjeteksti kuvien valinnasta, luomani Kuvanselaus-komponentti sekä valintojen määrälle oma teksti. Lisäksi lisäsin napit helpottamaan isojen kuvamäärien valitsemista. Kun kuvat oli valittu ja lisätty, niiden tiedostonimet lisättiin kuvassa 2. näkyvään tiedostolistaan, jonka jälkeen niille pystyi antamaan mahdolliset kuvaukset.


Vaihe 3. (Asetukset)

Kuvien valintavaiheen jälkeen tulee mahdollisuus muokata muita albumiin liittyviä asioita, kuten väriteema tai albumin otsikko. Kyseinen vaihe oli toteutukseltaan yhtä helppo kuin ensimmäinenkin vaihe, eikä vaatinut oikeastaan sen suurempaa työtä kuin komponenttien asettelun ja tekstien kirjoittamisen.


Vaihe 4. (Web-tiedostojen luonti)

Ohjelman siirtyessä viimeiseen vaiheeseen se tarkistaa onko albumin asetuksia tallennettu ja ehdottaa tallennusta tarvittaessa. Tämän jälkeen alkaa web-tiedostojen luonti, jossa ohjelma luo web-sivut sekä niissä käytettävät kuvat. Tiedostojen luonti saattaa kestää kauankin riippuen kuvien määrästä ja laadusta sekä käytettävän koneen nopeudesta.

Koska ohjelma on suunnattu peruskäyttäjille, päätin käyttää sivuihin perinteistä HTML -kieltä PHP:n ja CSS-tyylien sijaan. Näin saavutin parhaimman yhteensopivuuden sekä selaimien että palvelimien suhteen ja säästin käyttäjän mahdollisten ongelmien kohtaamiselta.

Koska kyse on Internet-käytöstä, kuvat piti muuttaa sopivan kokoisiksi. Delphin sisäinen kuvan koon muuttaminen ei tehnyt hyvää jälkeä, sillä se vääristi kuvien sisältöä. Tämän vuoksi päätin etsiä Internetistä valmiin lähdekoodin kyseiseen tarkoitukseen. Löysinkin hyvän esimerkin, joka tuotti korkeatasoista jälkeä. Sen haittapuolena oli kuitenkin hitaus, mutta ajattelin että on tärkeämpää saada laadukkaita kuvia kuin säästää hieman aikaa ja näin olivat ohjelman merkittävimmät vaiheet tehty.


Kun tiedostot on luotu, käyttäjällä on mahdollisuus avata luodun nettialbumin ensimmäinen sivu ja tarkistaa lopputulos tai avata kohdekansio suoraan ja avata itse tiedostot. Kun nettialbumi on luotu, sen voi siirtää Internetiin tai polttaa vaikka CD-levylle.


OHJELMAN TESTAUS

Ohjelmaa testattiin useaan otteeseen sen luontivaiheessa, ja saadun palautteen avulla säästyttiin välillä jopa merkittävältä määrältä työtä. Testaajina toimivat tuttavapiiristäni lähes jokainen, jolla oli digikamera ja kiinnostusta toimia testikäyttäjänä. Testausten yhteydessä tuli kuitenkin yllättävän vähän tilanteita, jotka olisivat kaataneet ohjelman tai sekoittaneet sen toiminnan. Huomattavimmat ongelmat olivat lähinnä sellaisia, joissa esimerkiksi lisättävä kuva oli viallinen tai käyttäjä valitsi tai kirjoitti olemattomia hakemistoja asetuksiin. Lopuksi kuitenkin kaikista löydetyistä virheistä ja ongelmista päästiin eroon. Ohjelmasta saattaa silti löytyä joitakin virhetilanteita aiheuttavia ongelmia, mutta tällä hetkellä se on jo kuitenkin varsin hyvin toimiva.

POHDINTA

Ohjelmasta tuli melko hyvä, vaikka jouduinkin karsimaan ominaisuuksia alkuperäisestä ideasta. Ohjelmaa tehdessä opin tekemään selkeää ja hyvin kommentoitua lähdekoodia, sekä opin Delphin mainion komponenttisysteemin tarjoamat mahdollisuudet. Opin myös ottamaan suunnitteluvaiheessa paremmin huomioon käyttäjän näkökulman ohjelman käytössä.

Vaikka ohjelman lähdekoodin määrä kasvoikin isoksi, ei sen osuus ollut kuitenkaan työn vaikein. Käyttöliittymän suunnitteleminen helpoksi ja silti toimivaksi oli haasteellista ja tarpeeksi selkeiden ohjetekstien kirjoittaminen vaati välillä suhteellisen paljon miettimistä. Hankalinta oli selventää käyttäjälle se, että ohjelmassa tallennetaan kaksi eri asiaa, nettialbumin asetukset ja niistä luodut web-tiedostot. Lopulta kuitenkin sain testikäyttäjien palautteen avulla asian ilmaistua ohjelmassa kohtuullisen selvästi.

Tein suuren osan lähdekoodista laajennettavuusmielessä, joten on mahdollista tehdä ohjelmasta vielä sellainen kuin siitä piti alun perinkin tulla, eli ominaisuuksiltaan laajempi. Ajattelin myös, että koska lähdekoodi on selkeää ja hyvin kommentoitua voisin laittaa sen nettiin jakoon niin, että mahdollisesti ohjelmointia opettelevat tai harrastavat saattaisivat hyödyntää sitä jollakin tavalla.


 .

Copyright © 2004 Juho Salonen