Převzorkování obrázku

Jde nějak PHPkem převzorkovat obrázek?
Příklad: Mám stránky s možností uploadu obrázku na server. Dymanicky potom vytvářím jejich galerii, ale k tomu potrebuju (aby to bylo poněkud user friendly) náhledy dotyčných obrázku, jinak by se mi totiž stahovali všechny obrázky v plné velikosti.

Šlo by to pomocí funkce ImageCopyResized(parametrs)?
Pokud ano, v jakém formátu bude výsledný obrázek.
tak už to mám. místoimagecreate() jsem dal imagecreatetruecolor(), protoze imagecreate() vytvari obrazek jen v 256tibarevne palete :(.

a misto imagecopyresized() je imagecopyresampled() -> pouzije se antialiasing.

<°)))><
To bude pěkný záhul na server, ne?
hmmmm, ani ne. já z obrázku udělám náhled a uložím ho - tímpádem se bude generovat jen poprvé...pochopitelně to co tam mám ted je testovaci provoz, ktery je jen pro me testovani. ve finale to bude galerie s moznosti upladu na web -> pochopitelne stahovat obrazky v plne velikosti by nebylo moc namnam ;o)
To je šikovné. (-;
však nedělám takový "blbiny" jen tak z plezíru :F
ZDrawím,newíte co tam mám blbě?
oba obrazky se mi ulozi,ale ten nahledowej je jenom jednobarewnej ctwerec(nekdy cernej nekdy swetle modrej,zalezi na zdrojowym obrazku)..
Newite co s tim?
Dik moc..

$zdroj = ImageCreateFromJPEG($adresar.$soubor_name);
$new = ImageCreateTrueColor(200, 200);
ImageCopyResampled($new, $zdroj, 0, 0, 0, 0, 200, 200, 150, 150);
ImageJPEG($new, $adresar.$soubor_nahled);
ImageDestroy($zdroj);
ImageDestroy($new);
A neni to tim, ze zvetsujes vyrez 150x150 z velkyho obrazku na 200x200 a v tom vyrezu je zrovna obloha apod?
ne..měl jsem tam aj funkci Get Size a dělala to to samý..
Hm, to je divný. Takhle by to mělo fungovat (a ostatním to funguje). A není poškozená třeba GD knihovna? Už jsi s obrázky s tou knihovnou, co tam máš, pracoval?
no..ehm..asi ne..
<HTML> $filename = "galerie/obrazek.jpg"; // cesta k puvodnimu obrazku
$filenameout = "nahled/obrazek.jpg" // kam ulozime nahled
$sizeX = 492; // sirka po zmenseni
$sizeY = 375; // vyska po zmenseni

$size = GetImageSize($filename);
$im_in = ImageCreateFromJPEG($filename);
$im_out = ImageCreateTrueColor($sizeX, $sizeY);
ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $sizeX, $sizeY,$size[0], $size[1]);
ImageJPEG($im_out, $filenameout);
ImageDestroy($im_in);
ImageDestroy($im_out);</HTML>
->Richard:
Tvuj zdrojak se v podstatnych vecech nelisi od toho, ktery napsal Dewil-bbs.

Tady je kod, ktery me zarucene a overene funguje (opet obdobny, jedina jeho prednost je, ze udrzuje proporce obrazku):

define('THUMBSIZE',150); //maximalni rozmer nahledu

function createthumb($s_file,$t_file,$kvalita=75){
if (!($m_zdrojobrazek = @ImageCreateFromJPEG($s_file))) return false;

$m_zdrwidth=imagesx($m_zdrojobrazek);
$m_zdrheight=imagesy($m_zdrojobrazek);
$m_vyswidth = $m_zdrwidth>=$m_zdrheight ? THUMBSIZE : THUMBSIZE/$m_zdrheight*$m_zdrwidth;
$m_vysheight = $m_zdrwidth<$m_zdrheight ? THUMBSIZE : THUMBSIZE/$m_zdrwidth*$m_zdrheight;

$m_vyslobrazek = imagecreatetruecolor($m_vyswidth,$m_vysheight);
imagecopyresampled($m_vyslobrazek,$m_zdrojobrazek,0,0,0,0,$m_vyswidth,$m_vysheight,$m_zdrwidth,$m_zdrheight);
ImageJPEG($m_vyslobrazek,$t_file,$kvalita);
ImageDestroy($m_vyslobrazek);
ImageDestroy($m_zdrojobrazek);
return true;
}
<HTML>Ja vim ze se nelisi ale to jeho "zrejme" nefungovlo tak jsem hodil source co nekde pouzivam ja</HTML>
to by me zajimalo, jak ti bude na nahravani stacit 50 mb
jednoducho
1024x768 jpeg = cca 200kB
200x200 thumb = cca 20kB
co je 232 takych dvojic na 50MB
a zostatok je 160kB na stranky

MR (BTW) 50mb neexistuje (bit s predponou tisíciny ?{mili bit})
if (!File_Exists("./images/moorhuhnKart/$trat/thumb$cislo.jpg")){
$zdrojobrazek = ImageCreateFromJPEG("./images/moorhuhnKart/$trat/screen$cislo.jpg");
$vyslobrazek = ImageCreateTrueColor(120,90);
ImageCopyResampled($vyslobrazek,$zdrojobrazek,0,0,0,0,120,90,ImageSX($zdrojobrazek),ImageSY($zdrojobrazek));
ImageJPEG($vyslobrazek,"./images/moorhuhnKart/$trat/thumb$cislo.jpg");
ImageDestroy($vyslobrazek);
ImageDestroy($zdrojobrazek);
}

...
Já to pro svou potřebu udělal takhle, ale umí to zatím jenom JPG:

http://elektrostraka.webzdarma.cz/Stranky/Programy/PHP/Obrazkovanisth.php

Skript si načte seznam obrázků z určeného adresáře, převzorkuje je a uloží do poddadresáře Mini, který si umí sám vytvořit.
Existují s tím určité potíže, třeba hodně velké fotky to nepřevzorkuje, protože se nevejdou do paměti.
Pokud je obrázků hodně, bude potřeba skript spustit několikrát, dokud se nepřestane hlásit překročení časového limitu.
Pro aktualizaci obrázků je potřeba smazat zmenšeniny v poddadresáři Mini.
Díky tomu, že se náhledy ukládají na disk, trvá dlouho pouze první spuštění, při kterém se náhledy vytvářejí. Potom se už čtou rovnou z disku.
Vyskytly se i potíže při špatně nastavených přístupových právech, což na webzdarma nehrozí.

(Nedávám na tehnle skript žádné ?kopyrajty?.)
newím čím to bylo,možná tím ImageSX(),ale tohle od M&N uz mi konecne jede;)))
díík moc=)!
-M&N- ! JE TO S POMLCKAMA! :D :D :D
to: -M&N- hmm paráda konečně sem jednou nemusel nic "ladit", ale sprostě to jenom opsat. dík!
jj, neni zac. priste to uz bude placeny :F :F :F.
(ale to uz vycleim bokem filepath, protoze jsem vam sem placl proste kus myho zdrojaku :b)