Onko missään step-by-step ohjeita png kuvan lukemiseen C:llä? Tarkoitus olisi siis lukea png kuva, määrittää tiettyjen pikselien värejä ja piirtää pikselitasolla sen png kuvan päälle, ja tallentaa tämä uusi png kuva. Ei luulisi olevan liikaa vaadittu, muttei onnistunut GDLibillä tai libpngllä :(
GDLibissä linkkeri valitti, ettei gdImageCreateFromPngPtr funkkaria löydy (tuo mallikoodi oli täältä: http://www.libgd.org/FAQ). Linkkerille yritin kyllä tarjota bgd.lib:iä.
Libpng:n example.c oli kauhean sekava, png.h:ssa oli viittaus zlib.h:hon, jotai ei tullut paketissa. Kun paketin purki samaan kansioon png.h:n kanssa, jotain tiedostoja meni päällekkäin (mm. example.c) jne. Kun sitä yritti kääntää, tuli taas lisää virheitä.
Libpng:n example.c alkaa näin:
#if 0 /* in case someone actually tries to compile this */
Minä kun haluaisin esimerkin, joka toimisi (as in voisi kääntää).
:( Php:llä tuo kuvien lueskelu onnistuisi, mutta luultavasti C:llä saa tuon homman tehtyä paljon järkevämmin (ohjelmasta saattaa tulla melko raskas).
Eli haussa olisi esimerkkiohjelma joka avaisi kuvan, piirtäisi vaikka punaisen pisteen keskelle kuvaa ja tallentaisi sen toiseksi kuvaksi. Php:ssä tämä vaatisi vain muutaman rivin (gdlibbiä käyttäen).
Turhauttavaa kun tämmöinen perusjuttu ei onnistu vaikka ircissä kyselee kun eri käyttiksissä ja kääntäjissä pitää eri tiedostoja kopioida ympäri konetta ja asettaa uusia parametrejä ja säätää arvoja.
Googleen iskin tuollaiset hakusanat. Ensimmäisen sivun, joka löytyi, esimerkki kääntyi ja vielä jopa toimikin niin kuin pitikin.
Kyseiset kirjastot (zlib ja libpng) olin jo aikaisemmin asentanut, enkä muista siinä mitään ongelmaa olleen.
Juu, älä käsin kirjastoja asenna, jos vain suinkin omistat jonkin välineen, joka voi asentaa ne puolestasi. Linuxissahan tuollaisia ongelmia ei niin helposti tule, Windowsissa voi tukeutua vaikkapa Dev-C++:aan ja DevPakeihin, noista kummastakin kun on sellainenkin.
Dev-C++ nimenomaan on käytössä.
Hain "c read png example" niin tuli tämä: http://cr.yp.to/2004-494/libpng/libpng-1.2.5/example.c
Pitää tutustua tuohon toiseen esimerkkiin.
Asensin ensin zlibin devpakin, sitten libpng:n devpakin.
http://zarb.org/~gc/html/libpng.html
Tuolta kopioin tuon esimerkin ja kokeilin kääntää, tulee linkkeri erroria:
[Linker error] undefined reference to `png_sig_cmp'
[Linker error] undefined reference to `png_create_read_struct'
jne.. eli käytännössä kaikki libpng:hen liittyvät kuvat. Koodin alussa on kyllä "#include <png.h>", eikä kääntäjä valita etteikö sitä löytyisi.
Mikähän sitten avuksi?
msdos464 kirjoitti:
tulee linkkeri erroria
Nih, et siis linkkaa mukaan tarvittavia kirjastoja. Linkkaaminenhan tapahtuu antamalla kääntäjälle vipu -lkirjaston_nimi, tässä tapauksessa siis -lpng
msdos464 kirjoitti:
Koodin alussa on kyllä "#include <png.h>"
Tämähän liittää vain headerin kääntäjälle, ei itse kirjastoa linkkerille.
Hmm, ooks linkkeröiny sen systeemis libpng:n kans yhteen?
moptim kirjoitti:
Hmm, ooks linkkeröiny sen systeemis libpng:n kans yhteen?
Öh.. en :( Nyt kääntyi, kiitoksia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.