LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: ShadowRoze Date: Tue Jun 10 10:58:08 2008 Subject: Re: [GD-DEVEL] Advanced image resize
Pierre Joye skrev: > hi, > > On Tue, Jun 10, 2008 at 6:04 PM, ShadowRoze <roze@laun.se> wrote: >> Hi, I would like to request that you add binary support for running Bicubic >> image resizing. Currently I only have a PHP code snippet, taking approx 20 >> seconds to resize a 2000x1000px image to 550x275px. > > For scaling images, is it really better than imagecopyresampled? > >> I would like you to try speeding up this function, since 20 seconds is quite >> much, and the current functions does look quite bad. > >> http://pastebin.com/m216c7c32 <-- the function I'm using. > > A couple of things that may help to speed up a bit your script: > - if you load jpeg, drop the imagecolorforindex alltogether, jpeg are > always truecolor (create two loops) I load the following types with the script utilizing the function: jpeg, gif, png. Not using ImageColorsForIndex results in having to use bitshifting instead. > - don't allocate the color, simply calculate it once and use it with > setpixel (0xAARRGGBB where AA goes from 0..127, other 0..255) save w*h > function calls > - truecolor image has no palette, no need to copy it (save a function call) > - calculate ($w - $ow) (and its $h equivalent) outside the loops, php > does not optimize this part After trying to implement all your suggestions the time required increased with 50% (ergo, to 30s). > > And more generally, why don't you use a simpler algorithm for > stretching images? Bicubic is good for scaling images (> 1.0x) but is > not particullary good or fast for reducing images. A area weight > implementation is fast and can give almost the best result > (speed/quality ratio is good too). > > About adding new interpolations (besides copyresampled), it is in > progress, I have working code already. The C API provides the > following methods (classic and a couple of optimized versions): > > http://pierre.libgd.org/affine/api/files/src/gd-h.html#gdInterpolationMethod Guess I'll have to wait for that one then. > > I'm also planing to add MMX/SSE2 version as well. These new features > should be in php 5.3. > > Cheers,
| Navigate in group php.gd.devel at sever news.php.net | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |