Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: JA5U - 06.09.16 - klo:22.53

Otsikko: RATKAISTU: Värin korvaaminen kuvista
Kirjoitti: JA5U - 06.09.16 - klo:22.53
Moi

Tällaisen rimpsun kirjottelin:
Koodia: [Valitse]
find . -name ".png" -exec convert {} -fuzz 10% -fill black -transparent "#BDBDBD" gray-{} \;
find palauttaa kuitenkin ./filename eikä tuo ./ ilmeisesti kelpaa uuden tiedonston nimeksi.
Kuinka nimen saisi ilman ./ ?
Otsikko: Vs: Värin korvaaminen kuvista
Kirjoitti: nm - 07.09.16 - klo:11.26
Jos kaikki tiedostot ovat yhdessä hakemistossa, onnistuu korvaamalla piste tähdellä:

Koodia: [Valitse]
find * -name "*.png" -exec convert {} -fuzz 10% -fill black -transparent "#BDBDBD" gray-{} \;
Mutta jos joku tiedosto on alihakemistossa, ongelmana on se, että koko polku päätyy kohdetiedoston nimeen, josta tulee gray-alihakemisto/kuva.png. Tällöin tiedoston luonti epäonnistuu, koska hakemistoa gray-alihakemisto ei ole olemassa. Yksi ratkaisu on poistaa kohdetiedoston nimestä hakemistopolku ja pitää vain tiedoston nimi basename-komennon avulla:

Koodia: [Valitse]
find . -name "*.png" -exec sh -c 'convert {} -fuzz 10% -fill black -transparent "#BDBDBD" "gray-$(basename {})"' \;
Otsikko: Vs: Värin korvaaminen kuvista
Kirjoitti: JA5U - 07.09.16 - klo:19.03
Siinä mielessä helppo tapaus, että ovat samassa kansiossa.

Jos eivät olisi, niin varmaan siirtäisi - sattuneesta syystä :D

Miten tuo
Koodia: [Valitse]
find * eroaa alkuperäisestä? Man sivuilta ei auennut.
Otsikko: Vs: Värin korvaaminen kuvista
Kirjoitti: kamara - 07.09.16 - klo:19.10
Siinä mielessä helppo tapaus, että ovat samassa kansiossa.

Jos eivät olisi, niin varmaan siirtäisi - sattuneesta syystä :D

Miten tuo
Koodia: [Valitse]
find * eroaa alkuperäisestä? Man sivuilta ei auennut.

Siten, että "." -tarkoittaa kyseistä hakemistoja ja "*" tarkoittaa hakemiston kaikkia tiedostoja.

Eron huomaa seuraavalla:
Koodia: [Valitse]
ls .
ls *

Myös cd:llä voi verrata...
Koodia: [Valitse]
cd .
cd *
Otsikko: Vs: Värin korvaaminen kuvista
Kirjoitti: JA5U - 07.09.16 - klo:19.49
Mutta miten tuosta pitäisi päätellä, että se oleellisesti muuttaa palautettavaa arvoa?

Tässä lopullinen mustasta harmaaksi muutos:
Koodia: [Valitse]
find * -name "*.png" -exec convert {} -resize 24x24 -fuzz 10% -fill "#BDBDBD" -opaque "#000000" gray-{} \;
En ole aivan tyytyväinen  lopputulokseen, koska kuviin jää mustat reuna ikonien ympärille.
Ehkä Gimpistä löytyy jokin toiminto, jolla tehdä eräajoja...

Koodia: [Valitse]
-fuzz 90% poisti kaikki mustat :)
Otsikko: Vs: Värin korvaaminen kuvista
Kirjoitti: Tomin - 07.09.16 - klo:20.15
Mutta miten tuosta pitäisi päätellä, että se oleellisesti muuttaa palautettavaa arvoa?

Kun siinä komennossa on piste, niin find etsii työhakemistosta (siis nykyisestä hakemistosta) ja laittaa myös sen hakemiston polun siihen nimeen, siksi ne ovat muotoa "./tiedosto". Kun siinä komennossa on pisteen sijaan tähti (asteriski), niin bash laajentaa sen niin, että find saa kaikkien työhakemistossa olevien tiedostojen ja alihakemistojen nimet argumenteikseen ja siksi se käyttää noita tiedostonimiä. Alihakemistoissa olevat saavat edelleen myös polun eli ne ovat muotoa "alihakemisto/tiedosto" (polku voi olla pidempikin, jos niissä on myös alihakemistoja). En kyllä muista mikä oli yläraja noiden argumenttien määrälle, mutta sekin voisi kai tulla vastaan tuossa laajennuksessa.
Otsikko: Vs: Värin korvaaminen kuvista
Kirjoitti: JA5U - 08.09.16 - klo:12.18
Mutta miten tuosta pitäisi päätellä, että se oleellisesti muuttaa palautettavaa arvoa?

Kun siinä komennossa on piste, niin find etsii työhakemistosta (siis nykyisestä hakemistosta) ja laittaa myös sen hakemiston polun siihen nimeen, siksi ne ovat muotoa "./tiedosto". Kun siinä komennossa on pisteen sijaan tähti (asteriski), niin bash laajentaa sen niin, että find saa kaikkien työhakemistossa olevien tiedostojen ja alihakemistojen nimet argumenteikseen ja siksi se käyttää noita tiedostonimiä. Alihakemistoissa olevat saavat edelleen myös polun eli ne ovat muotoa "alihakemisto/tiedosto" (polku voi olla pidempikin, jos niissä on myös alihakemistoja). En kyllä muista mikä oli yläraja noiden argumenttien määrälle, mutta sekin voisi kai tulla vastaan tuossa laajennuksessa.

Ok, täytyy painaa mieleen.