Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuvien koon muuttaminen lennosta

Sivun loppuun

es4 [19.03.2006 20:05:38]

#

Onnistuuko php:llä kuvien muuttaminen lennosta?
Eli niin, ettei kuvia tallenneta koon muuttamisen tulostamisen välissä?

-Es4

Meitsi [19.03.2006 20:06:53]

#

Onnistuu, jos on tarkoituksena tulostaa kuva suoraan käyttäjälle, koska html:län sekaanhan ei kuvadataa voi laittaa (paitsi kikkailemalla, mutta en suosittele).

es4 [19.03.2006 20:11:15]

#

Milläs funktiolla tämä onnistuu?

Nyt meni vähän ohi tuo tarkoitatko, ettei suoraan tulostaminen ole suositeltavaa?

Antti Laaksonen [19.03.2006 20:17:34]

#

Voit kirjoittaa img-tagin sisään PHP-tiedoston nimen:

<img src="pieneksi.php?kuva=testi.png">

Skripti pieneksi.php muuttaa sitten parametrinaan saaman kuvan oikeankokoiseksi ja tulostaa kuvadatan sivulle. HTML-sivulla siis tavallaan kutsutaan erillistä skriptiä, joka luo kuvan.

Jos kuvat muutetaan aina samalla tavalla, minusta kannattaa kuitenkin tallentaa oikeankokoiset kuvat valmiiksi tiedostoihin, jotta palvelinta ei turhaan rasiteta.

Meitsi [19.03.2006 20:21:12]

#

lainaus:

ettei suoraan tulostaminen ole suositeltavaa?

Tarkoitin, että joko tulostat käyttäjän selaimelle pelkän kuvadatan (jolloin selaimen pitäisi tajuta että kyseessä on kuva ja näyttää se tai ehdottaa sen tallentamista), tai käyttää juuri Antin kertomaa tapaa jossa annetaan php-koodin osoite kuvatiedostoksi.

Kuvadatan sekoittamisella html:lään tarkoitin sitä, että käytetään keinoa jossa kuvadata on integroitu tiedoston urlin kohdalle (tämä on hieman kummallinen toteutus, emt toimiiko kaikilla selaimilla, ja kasvattaa turhaan html tiedoston kokoa)

es4 [19.03.2006 20:22:04]

#

HHm, mutta minkäslainen tuo pieneksi.php:n koodi olisi? millä funktioilla kuvan koko muutettaisiin?

Tarkoituksena olisi tehdä kuvagalleria scripti, jossa jokainen käyttäjä saa valita omaan resoluutioonsa parhaiten sopivan kuvakoon. Jos kaikki koot tallennataisiin tilaa menisi paljon. Serverillä ei olisi paljoa käyttäjiä jolloin lennosta muuttaminen lienee parempi tapa?

Antti Laaksonen [19.03.2006 20:34:22]

#

Kuvan kokoa pystyy muuttamaan näillä funktiolla:
https://www.php.net/manual/en/function.imagecopyresized.php
https://www.php.net/manual/en/function.imagecopyresampled.php

Yksinkertaisimmillaan skripti olisi tällainen:

<?php

$nimi = $_GET['kuva'];
$kuva = imagecreatefrompng($nimi);

$tiedot = getimagesize($nimi);
$leveys = $tiedot[0];
$korkeus = $tiedot[1];

$uusi = imagecreatetruecolor($leveys / 2, $korkeus / 2);
imagecopyresampled($uusi, $kuva, 0, 0, 0, 0,
                   $leveys / 2, $korkeus / 2, $leveys, $korkeus);

header("Content-type: image/png");
imagepng($uusi);

?>

Tämä pienentää kuvan puoleen sen alkuperäisestä koosta. Tähän tarkoitukseen parempi kuvamuoto olisi kyllä ehkä JPG.

es4 [19.03.2006 20:36:29]

#

Kiitos paljon :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta