Autor Zpráva
Jardaklon
Profil *
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
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 *


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
Obvyklé doostření asi nepomůže, je to ostré až moc. Můžete odkázat ještě vzor?
Jardaklon
Profil *
Alphard:
Teď už to je lepší, protože jsem použil imagecreatetruecolor. Tak z toho vyleze toto:
Alphard
Profil
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: