Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: kuvan rajaus?

puavo [14.01.2008 16:16:03]

#

Onko PHP:lla mitään mahdollisuuksia rajata kuvaa tietyn kokoiseksi, esim 436 x 493 pikselin kokoiseksi? Olen rakentamassa kuvagalleriaa, johon tulee kuvien päivitystoiminto. Galleriassa kaikki kuvat ovat edellä mainitun kokoisia.

Tiedän kyllä, miten kuva pienennetään PHP:lla niin, että leveyden ja korkeuden suhde säilyy, mutta onko tuo rajaus mahdollista ilman, että kuva venyy mitenkään? En ainakaan äkkiseltään löytänyt mitään ohjeita Googlettamalla tai täältä foorumilta hakemalla.

Blaze [14.01.2008 16:25:47]

#

Tänään on onnenpäiväs; mulla on tollanen valmiina: http://blaze.dyndns.ws/crop/

Antti Laaksonen [14.01.2008 16:40:04]

#

Ja tässä on pikku esimerkki, joka valitsee osan kuvasta uudeksi kuvaksi.

<?php
$kuva = imagecreatefrompng("kuva.png");
$uusi = imagecreate(50, 50);
imagecopy($uusi, $kuva, 0, 0, 25, 25, 50, 50);
imagepng($uusi, "uusi.png");
?>

Yllä oleva koodi erottaa kuvasta kuva.png alueen, joka alkaa kohdasta (25, 25) ja jonka koko on (50, 50). Toisin sanoen kyseessä on neliö, jonka etäisyys vasemmasta ja yläreunasta on 25 pikseliä ja sivunpituus on 50 pikseliä. Lopuksi erotettu alue tallennetaan tiedostoon uusi.png.

puavo [14.01.2008 21:39:21]

#

Kiitos avusta! Täytyypä alkaa testata koodia käytäntöön.

Lebe80 [15.01.2008 08:26:57]

#

Pienennä tuota "croppaus-aluetta" aluksi vaikkapa leveyden suhteen. Jos tämän jälkeen samassa suhteessa pienennetty korkeus ylittää alkuperäisen kuvan korkeuden, niin pienennät leveyden sitten korkeuden suhteen. Lopuksi otat kuvan keskeltä alueen.


Alkuperäinen kuva:
http://www.terolepisto.net/images/stories/normaali/silk_worm_08.png

Lopputulos on hyvinkin tämänkaltainen:
http://www.terolepisto.net/mambots/content/lightThumb/thumbs/normaali_silk_worm_08.png

Sama systeemi toimii siis täysin yhdellä tavalla sekä vaaka- että pystykuviin.

thumb:
http://www.terolepisto.net/mambots/content/lightThumb/thumbs/simpsonAvatarTemposaur.png

vaakakuva:
http://www.terolepisto.net/images/stories/simpsonAvatarTemposaur.png

editedit:
Jos haluaa vielä kuvata thumbissa hieman lähempää, niin kertoo cropattavan alueen korkeuden ja leveyden ykköstä pienemmällä luvulla, niin saa thumbista hieman "lähikuvaa" muistuttavan otoksen, jolloin thumbissa ei ole aina kuvattu kuvaa "reunasta reunaan".

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta