ugrás a tartalomhoz

A PHP meg tudja változtatni egy kép (fizikai) méretét ??

todwardus · 2007. Már. 29. (Cs), 19.23
Hello, Sziasztok!
Megmagyarázom, hogyan is értem a címet.
Kezdem az elején: Van egy jó kis közösségi oldalam. Ennek a kis oldalnak van egy olyan funkciója, hogy lekérdezi a felhasználók listáját, szépen, a felhasználó neve mellé írva nemét, a korát stb. Eddig semmi probléma(működik, gyors).
Most viszont olyan igény állt elő, hogy minden felhasználó tölthessen fel magáról képet. Még itt is minden oké...megértem őket..nem gond, töltsenek...van tárhelyem. DE!
Ha ki akarom listázni adatbázisból, a hozzájuk tartozó képekkel mi történik? NAGYON-nagyon lassú, hiába rakom kis méretűre a képeket, attól még ugyanazt a képet fogja betölteni, csak utána lekicsinyíti...(ez nem járható út)

Nem tudom, hogy ezt a többi oldal hogyan oldja meg...
Én valami olyasmire gondolok, hogy minden képből kettőt őriznek.
Az egyik a teljes kép, a másik az pedig az eredeti kép lekicsinyített változata, valahogy lekonvertálják (átalakítják) a felbontását (nem a méretét) -> ezáltal valóban kisebb lesz (persze ha felnagyítanánk torz lenne, de kis méretben nem veszed ezt észre)
Az ilyen kis képeket használatják az ilyen(lista) lekérdezésekre
(a nagyot pedig akkor pl ha valaki rákattint a képre) szerintem...
de nem tudom, ezért fordulok hozzátok.

Tehát: hogyan tudnám képpel kilistázni a felhasználóimat?

Nagyon szépen megköszönnék minden segítséget, sőt előre is megköszönöm:
Köszi :)

De komolyan, ez nekem most tényleg fontos lenne.
 
1

Resize

Saigon · 2007. Már. 29. (Cs), 19.44
Hát a legegszerübb, ha valóban két verziót tárolsz. Egy kicsit, és egy nagyot. A ki kép mondjuk 100x100 pixel, az jelenik meg a listázában, ha rákattint akkor meg az original képet mutatja. A php kód csinál egy kisméretű másolatot a képből és tárolja azt. Ezt akkor érdemes csinálni, amikor a user feltölti magáról a képet, akkor egy előtolásban lemented az eredetit, és létrehozod a kicsit is.
Erre van php függvény. A barátod ezekben:
http://hu2.php.net/manual/hu/function.imagecopyresized.php

Amikre azonban figyelni kell:
-Valóban képet töltsenek fel
-A userek hajlamosak mindenféle formátumban feltölteni képet, ezt lehet elleőrizni (imagetypes eljárás), és ennek megfelően kell bánni vele

Tehát itt is elég komolyan ellenőrizni kell az inputot.
2

talán ez a jó megoldás számodra

Vas Dávid · 2007. Már. 29. (Cs), 19.44
Üdv!

nos, ilyenkor úgy kell ezt használni, hogy mikor feltöltöd az eredeti képet akkor csinálsz róla egy "kisebbet" és azt is mellé töltöd mondjuk ha az eredeti neve "kep_1.jpg" akkor a kicsié mondjuk ez lenne: "kep_1_thumb.jpg" vagy teljesen mindegy...

Ezt így lehet megoldani (szerintem):

<?php
$file = 'images/kep_1.jph'; // a kép helye (az alap)
$file_wd = "100" // a kép szélessége
$file_ht = "80" // a kép hosszúsága

$img = imageCreateFromJPEG($file);

$img_wd = imagesx($img);
$img_ht = imagesy($img);

$img2 = imageCreateTrueColor($file_wd, $file_ht);
imageCopyResampled($im2, $img, 0, 0, 0, 0, $file_wd, $file_ht, $img_wd, $img_ht);

imagejpeg($img2, 'images/kep_1_thumb.jpg'); // az új kép neve

imageDestroy($img);
imageDestroy($im2);
?>
ui: a kód nincs letesztelve

Remélem erre gondoltál... Persze ez csak a jpg képekre igaz
3

thx

todwardus · 2007. Már. 30. (P), 16.36
Köszi, most tesztelem a kódot...és örülök, hogy létezik ilyen függvény...nem is tudom mit kezdenék nélküle :D még 1szer kössz
4

Kép verziók

vbence · 2007. Már. 30. (P), 17.25
Erre a problémakörre van itt egy kulcsrakész megoldás. A kód sűrűn kommentezett, bele lehet nézni.

http://vbence.web.elte.hu/php_kep_meretezes_vizjel.html

B
5

Koszi :)

k014 · 2007. Már. 30. (P), 20.03
A kettes oldalon levo kod tokeletes :)
Koszonom szepen a segitsegeteket.
6

Szívesen

Vas Dávid · 2007. Már. 30. (P), 20.55
Nincs mit...:)