ID:               49696
 Updated by:       paj...@php.net
 Reported By:      sriram dot natarajan at gmail dot com
-Status:           Open
+Status:           Assigned
 Bug Type:         Feature/Change Request
 Operating System: unix/linux
 PHP Version:      5.3SVN-2009-09-28 (snap)
-Assigned To:      
+Assigned To:      pajoye
 New Comment:

I have a patch for libgd and jpeglib7 to allow exactly that. However a
manual scale is still necessary if you like to have a good result.




Previous Comments:
------------------------------------------------------------------------

[2009-09-28 05:03:53] sriram dot natarajan at gmail dot com

Description:
------------
GD library is commonly used in PHP5 applications for image processing.
When creating thumbnails from a large jpeg image, the original image
currently has to be decoded to a full-size copy before being resampled
or resized. This is a relatively expensive step. The underlying jpeg
library has a capability of prescaling an image when it is being
decoded, so for example the decoded image could be only 1/16 the size of
the fullsize image by prescaling by a factor of 4. This saves a
substantial amount of cpu time.

Expected result:
----------------
we can update php libgd library and our php gd extension to leverage
underlying jpeg's ability to prescale image at the time of creating jpeg
images. 

for example, we can introduce new API or patch our existing
gdImageCreateFromJpeg API to have an extra argument for prescale size so
that we can set the value of 'prescale' value like below

cinfo.scale_denom = prescale;

before calling "jpeg_start_decompress (&cinfo)" function. 

[credits: thanks to Richard Smith for coming up with this nice
suggestion]

af course, this will allow users to invoke our 'imagecreatefromjpeg'
with an optional argument which specifies the prescale size of this
jpeg. 

$src_img=imagecreatefromjpeg($name, 4);

Actual result:
--------------
better performance while producing jpeg based thumbnails 


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=49696&edit=1

Reply via email to