Autor | Zpráva | ||
---|---|---|---|
Jardaklon Profil * |
#1 · Zasláno: 16. 2. 2012, 20:03:52
Hezký večer,
mám script, který zmenšuje obrázky ale výstup má hroznou kvalitu. Nevíte někdo jak to změnit, aby z toho lezli hezčí obrázky? Děkuji. // Store the orignal file copy($photos_uploaded['tmp_name'][$counter], $slozka."/".$images_dir."/".$filename); // Let's get the Thumbnail size $size = GetImageSize( $slozka."/".$images_dir."/".$filename ); if($size[0] > $size[1]) { $thumbnail_width = 100; $thumbnail_height = (int)(100 * $size[1] / $size[0]); } else { $thumbnail_width = (int)(100 * $size[0] / $size[1]); $thumbnail_height = 100; } // Build Thumbnail with GD 1.x.x, you can use the other described methods too $function_suffix = $gd_function_suffix[$filetype]; $function_to_read = "ImageCreateFrom".$function_suffix; $function_to_write = "Image".$function_suffix; // Read the source file $source_handle = $function_to_read ( $slozka."/".$images_dir."/".$filename ); if($source_handle) { // Let's create an blank image for the thumbnail $destination_handle = ImageCreate ( $thumbnail_width, $thumbnail_height ); // Now we resize it ImageCopyResampled ( $destination_handle, $source_handle, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $size[0], $size[1] ); } // Let's save the thumbnail $function_to_write( $destination_handle, $slozka."/".$images_dir."/tb_".$filename ); ImageDestroy($destination_handle ); |
||
Alphard Profil |
#2 · Zasláno: 16. 2. 2012, 20:52:30
ImageCopyResampled() obvykle bývá docela použitelné, pro miniatury určitě. Možná dát imagejpeg() vyšší kvalitu než výchozích 75, ale to asi moc nepomůže.
Nemáte ukázku, abychom věděli, co eliminovat? Jesti pomůže nějaké sharpen nebo něco jiného? |
||
Jardaklon Profil * |
#3 · Zasláno: 16. 2. 2012, 21:09:58 · Upravil/a: Jardaklon
Toto měl být vodopád. Snížení kvality markantní :o( Tak jsem kvalitu o něco zlepšil tím, že jsem imagecreate nahradil imagecreatetruecolor . Obrázky pořád nic moc, ale alespoň podstatně lepší. Teď by to ještě chtělo doostřit.
|
||
Alphard Profil |
#4 · Zasláno: 16. 2. 2012, 21:48:12
Obvyklé doostření asi nepomůže, je to ostré až moc. Můžete odkázat ještě vzor?
|
||
Jardaklon Profil * |
#5 · Zasláno: 16. 2. 2012, 22:00:38
Alphard:
Teď už to je lepší, protože jsem použil imagecreatetruecolor . Tak z toho vyleze toto:
|
||
Alphard Profil |
#6 · Zasláno: 16. 2. 2012, 22:05:44
Ajo, na to jsem se zapomněl podívat. Obvyklá chyba je použití imagecopyresized() místo imagecopyresampled(). Mně se v tom vašem zdálo málo barev, ale nenapadlo mě hledat to v trueColor. Budu vědět pro příště.
Teď už to asi moc nespravíte, leda doostřit. Jestli máte k dispozici http://php.net/manual/en/book.imagick.php, tak dá možná mírně lepší výsledky. |
||
Jardaklon Profil * |
#7 · Zasláno: 16. 2. 2012, 22:23:03
Každopádně, tahle kvalita je dostačující. Moc Vám děkuji za pomoc, byla inspirativní a alespoň jsem si uvědomil na co se zaměřit.
|
||
Časová prodleva: 12 let
|
0