I am using Brett's Mr. PHP thumb caching script along with phpThumb to create my thumbs. It works extremely well, except for one thing... I cannot get it to set and process the UnSharpMask filter. The relevant part of the script looks like this:

// generate the thumbnail
require('../phpthumb/phpthumb.class.php');
$phpThumb = new phpThumb();
$phpThumb->setSourceFilename($image);
$phpThumb->setParameter('w',$width);
$phpThumb->setParameter('h',$height);
$phpThumb->setParameter('q','95'); // set the quality to 95%
$phpThumb->setParameter('fltr[]','usm|80|0.5|3'); // <--- THIS SHOULD SET THE USM FILTER
$phpThumb->setParameter('f',substr($thumb,-3,3)); // set the output file format

if (!$phpThumb->GenerateThumbnail()) {
    error('cannot generate thumbnail');
}

I'm guessing there's a problem with my syntax, since the fltr[] parameter requires brackets. I have tried escaping the brackets like so: 'fltr[]' but that didn't work either.

I've used several other possible parameters with good success (zoom cropping, max height, max width, etc...) Everything seems to work except the filters (including usm - UnSharpMask).

I don't get any errors. It spits out thumbs all day long. They're just not sharpened.

For reference, here's the official phpThumb readme file that discusses all the possible settings and filters.

Thanks for looking.

有帮助吗?

解决方案

Well after much trial, error, and aggravation, I finally discovered the solution buried in one of the demo files that come with phpThumb.

It's a matter of removing the brackets all together. Basically changing this line:

$phpThumb->setParameter('fltr[]','usm|80|0.5|3');

to this:

$phpThumb->setParameter('fltr','usm|80|0.5|3');

After that, it's only a matter of tweaking the settings to get the desired amount of sharpness.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top