Jos minulla on kuva, jonka koko on esim. 2000x1600, niin miten saan muokattua siitä max 100x100 kuvan, mutta siten että kuvasuhde pysyisi samana? Uusi kuva pitäisi tallentaa nimellä kuvannimi_pieni.jpg. Kielenä C++.
sun pitää etsiä ainakin funktio, mikä pakkaa kuvasi jpg muotoon. Sitten kait ihan perus skaalausfunktioilla skaalaat kuvan.
Olen uusi tän kielen kanssa, enkä osaa tuollaisia. Mikä on skaalausfunktio? Miten niin pakata? Millä funktiolla voi tallentaa kuvan? Miten se tallennetaan? Mitä kirjastoja tarvitaan? Voiko sen tehdä komentorivillä? Voiko joku antaa esimerkin?
Eiköhän olisi järkevämpi ratkaisu hankkia jokin valmis ohjelma tuollaiseen hommaan, jälkikin olisi parempaa, kun olisi jonkun asiaan perehtyneen koodaamat skaalausfunktiot ym.
Oman ohjelman tekemisessä on oikeastaan kaksi osaa: JPEG-muotoisen kuvan purkaminen ja pakkaaminen (onnistuu libjpeg-kirjastolla) ja varsinainen skaalausprosessi (vaatii hyviä C++-taitoja ja tietämystä sopivista interpolaatioalgoritmeista).
Esimerkiksi IrfanView-ohjelmalla muunnos onnistuu tähän tapaan komentoriviltä:
i_view32 c:\kuvat\suuri.png /resample=(100,0) /convert=c:\kuvat\pieni.jpg
Tästä ei tietenkään ole apua, jos haluat nimenomaan oppia tekemään tuollaisen ohjelman C++:lla.
Toi IrfanView olisi ihan ok, jos se toimisi. Wintoosa valittaa, että se ei ole sisäinen eikä ulkoinen komento toi i_view32.
Sinun pitää ehkä määrittää komentoon ohjelman koko polku (C:\...\i_view32.exe).
Voit myös suorittaa komennon hakemistossa, johon IrfanView on asennettu.
Nyt se lähti toimimaan, mutta se ei muuta kokoa. Se vain kloonaa kuvan ja nimeää sen tolle nimelle.
Minulla komento toimii, joten minun on vaikeaa neuvoa enempää.
Auttaako, jos kirjoitat /resize etkä /resample?
Yksi mahdollisuus on, että ohjelman versioiden välillä on eroa. Tietoa komentorivin käytöstä on ohjelman ohjeissa (kohta Command Line Options tms.).
Joo, se toimii resizellä. 0 tarkoittaa kuvan koossa nähtävästi originaalia kokoa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.