[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/wysiwyg/shared/tiny_mce/plugins/ibrowser/scripts/phpThumb/docs/ -> phpthumb.faq.txt (source)

   1  //////////////////////////////////////////////////////////////
   2  ///  phpThumb() by James Heinrich <info@silisoftware.com>   //
   3  //        available at http://phpthumb.sourceforge.net     ///
   4  //////////////////////////////////////////////////////////////
   5  ///                                                         //
   6  //    Frequently Asked Questions (FAQ) about phpThumb()     //
   7  //                                                         ///
   8  //////////////////////////////////////////////////////////////
   9  
  10  
  11  Q: My question isn't answered here and I can't find any
  12     forums, how do I get support?
  13  A: Please email me directly at info@silisoftware.com with
  14     any questions, suggestions, donations, etc.
  15  
  16  
  17  Q: I think I found a bug, what's the first thing I should do?
  18  A: Please make sure you're using the latest version. There's
  19     a good chance I may have already fixed the bug, so please
  20     make sure you can reproduce it with the latest version
  21     before reporting the bug.
  22  
  23  
  24  Q: phpThumb doesn't work as expected, and it may be a server
  25     configuration issue -- how do I check?
  26  A: Please run /demo/demo.check.php to find out how your server
  27     matches up with the recommended configuration and for
  28     suggestions on what to change for improved performance.
  29  
  30  
  31  Q: What is the GPL? Can I use this for commercial sites?
  32  A: See the GPL FAQ: http://www.gnu.org/licenses/gpl-faq.html
  33     In general, if you just want to call phpThumb.php in the
  34     standard <img src="phpThumb.php?src=pic.jpg&w=100"> manner
  35     then there is no problem, you're free to do this no matter
  36     if you site is commercial or not, or what license your code
  37     is released under.
  38     If you're calling phpThumb() as an object then you will
  39     probably run into license issues, so consult the above FAQ
  40     and the GPL itself.
  41     No matter if you use phpThumb() commercially or not, no
  42     payment is required. However, donations are always welcome
  43     and can be made at http://phpthumb.sourceforge.net
  44  
  45  
  46  Q: Some images generate thumbnails, but some fail (the original
  47     non-resized image is output instead).
  48  A: Your PHP installation does not have a high enough memory_limit
  49     and ImageMagick is not installed on the server. The PHP memory
  50     required is 5 times the number of pixels in the image.
  51     For example:
  52       640x480x5   = 1.5MB
  53       1600x1200x5 = 9.2MB
  54     You can adjust the PHP memory limit in php.ini (if you have
  55     permission on your server to do so), or (better yet) install
  56     ImageMagick on the server and that will bypass the memory limit
  57     issue. If you can't do either of the above, you can resize the
  58     images manually (with your favourite image editor) to a size
  59     that your memory_limit setting can handle, and/or you can
  60     re-save the images with an image editor that can embed an EXIF
  61     thumbnail (Photoshop for example) which phpThumb can use as an
  62     image source (lower image quality, but perhaps better than
  63     nothing).
  64  
  65  
  66  Q: I'm getting is this error message:
  67     Failed: RenderToFile(<filename>) failed because
  68     !is_resource($this->gdimg_output)
  69  A: You missed the call to GenerateThumbnail() before
  70     RenderToFile() or OutputThumbnail.
  71     See /demo/phpThumb.demo.object.php for an example.
  72  
  73  
  74  Q: I'm trying to save a phpThumb-generated image in Internet
  75     Explorer and it saves in BMP format, why?
  76  A: This is not phpThumb's fault, it is an IE issue:
  77     http://support.microsoft.com/default.aspx?scid=kb;en-us;810978
  78     http://support.microsoft.com/default.aspx?scid=kb;en-us;260650
  79  
  80  
  81  Q: PNG images with transparent areas show up with gray background
  82     in the areas that are supposed to be transparent.
  83  A: Internet Explorer has had a broken PNG alpha-channel display
  84     implementation for a decade, so it may never get fixed. Other
  85     major browsers generally handle alpha-transparent PNGs fine.
  86     See http://www.silisoftware.com/png_transparency/
  87     For an alpha-channel PNG display in IE hack, see this page:
  88     http://www.koivi.com/ie-png-transparency/
  89  
  90  
  91  Q: I'm getting "<filename> does not exist" when I know the
  92     file does exist
  93  A: Check that these two values are present and properly
  94     configured in phpThumb.config.php (introduced in v1.6.0):
  95      $PHPTHUMB_CONFIG['allow_src_above_docroot']  (default=false)
  96      $PHPTHUMB_CONFIG['allow_src_above_phpthumb'] (default=true)
  97     If your images are outside DOCUMENT_ROOT then you will have
  98      to configure 'allow_src_above_docroot' to true.
  99     Make sure whatever user the webserver is running as has read
 100      permission to the file/directory you're reading from
 101  
 102  
 103  Q: Should I use phpThumb.php, or use phpThumb() as an object?
 104  A: phpThumb.php is easier to use (less coding) for basic uses.
 105     phpThumb.php handles all caching; your own object will need
 106     to have its own caching code. If you just want to display a
 107     thumbnailed version of an existing image, use phpThumb.php
 108     If you want to render one (or more) thumbnails to static
 109     files (during upload, for example), that's an appropriate
 110     use for the object mode. Also, phpThumb.config.php is only
 111     used by phpThumb.php, so if you instantiate your own object
 112     you need to manually set all configuration options because
 113     phpThumb.config.php has NO effect. So, to repeat:
 114     **always use phpThumb.php unless you NEED to have an object**
 115  
 116  
 117  Q: The first time I go to a page which contains thumbnails I
 118     don't actually see the thumbnail, I just get a browser image
 119     placeholder (or no image). As soon as I hit refresh, all the
 120     thumbnail images pop into place really fast.
 121  A: You can try and see if it works better with
 122       $PHPTHUMB_CONFIG['cache_force_passthru'] = false;
 123     but typically the default setting works better.
 124     This is something of an unresolved issue on some servers,
 125     where for whatever reason I haven't (yet?) been able to
 126     figure out a setting that always works the first time. If the
 127     above config setting doesn't help, you might be stuck with
 128     having to manually or automagically pre-cache thumbnails as
 129     they're created.  Please email info@silisoftware.com if you
 130     have a better solution...
 131  
 132  
 133  Q: Are there any front-end GUI interfaces to phpThumb()?
 134  A: See /demo/readme.demo.txt
 135  
 136  
 137  Q: Are there / have there been any security issues in phpThumb?
 138  A: http://secunia.com/product/5199/
 139  
 140  
 141  Q: Why can't Flash work with images output from phpThumb()?
 142  A: Flash doesn't like progressive JPEG. Set:
 143     $PHPTHUMB_CONFIG['output_interlace'] = false;
 144  
 145  
 146  Q: Image quality is not very good - why?
 147  A: If you're using GD v1.x, no way around it. Upgrade to GD v2.x
 148  
 149  
 150  Q: Image quality is very bad, very pixelated -- why?
 151  A: You may be trying to resize images larger than the available
 152     PHP memory, so phpThumb is simply extracting and using the
 153     EXIF thumbnail as the image source, which is usually about
 154     160x120 (so if you resize it to 640x480 it will look very bad).
 155     To calculate the required size for memory_limit in php.ini,
 156     calculate the number of pixels in the image and multiply by 5:
 157     For example, 1600x1200 = 1600 * 1200 * 5 = 9600000 = 10M
 158     Easy solution: install ImageMagick
 159  
 160  
 161  Q: Can I save the generated thumbnail to a file?
 162  A: Yes, there are several ways to do so; the best way is to call
 163     phpThumb as an object and call RenderToFile() to save the
 164     thumbnail to whatever filename you want.
 165     See /demo/phpThumb.demo.object.php for an example.
 166     The other way is to use the 'file' parameter (see
 167     /docs/phpthumb.readme.txt) but this parameter is deprecated
 168     and may not exist in future versions of phpThumb().
 169  
 170  
 171  Q: "Off-server thumbnailing is not allowed" -- how do I enable it?
 172  A: By default, phpThumb() only makes thumbnails for the same
 173     domain that it is running on. To allow it to make thumbnails
 174     for a limited number of other domains, add them
 175     (in phpThumb.config.php) like this:
 176       $PHPTHUMB_CONFIG['nohotlink_valid_domains'] = array(
 177           @$_SERVER['HTTP_HOST'], 'example.com', 'www.example.com',
 178           'subdomain.example.net', 'example.org');
 179     To disable off-server thumbnail blocking, just set:
 180       $PHPTHUMB_CONFIG['nohotlink_enabled'] = false;
 181  
 182  
 183  Q: Is it possible to set the parameters (like w/h/fltr[]) in
 184     the config, so that they can't be changed over the URL?
 185  A: Take a look at $PHPTHUMB_DEFAULTS at the bottom of
 186     phpThumb.config.php  You'll want to set
 187       $PHPTHUMB_DEFAULTS_GETSTRINGOVERRIDE = false
 188     possibly also
 189       $PHPTHUMB_DEFAULTS_DISABLEGETPARAMS = true
 190     You may also want to investigate
 191       $PHPTHUMB_CONFIG['high_security_enabled'] = true
 192     (see the example at the bottom of phpThumb.config.php
 193     for how to call images in HighSecurity mode)
 194  
 195  
 196  Q: Is there a way to use phpThumb() object to create thumbnails
 197     without the parameters in the URL showing the location of
 198     the image etc?
 199  A: There is a demo in /demo/phpThumb.demo.object.php. You could
 200     modify this into your own file, but there still remains the
 201     problem of passing parameters to the file, whether it's
 202     phpThumb.php or your own instantiation of a phpThumb() object.
 203     I would suggest is putting as many of the common parameters
 204     into phpThumb.config.php as possible under $PHPTHUMB_DEFAULTS,
 205     so you then don't have to pass them for each image. If you
 206     don't want people modifying the parameters, turn on
 207     $PHPTHUMB_CONFIG['high_security_enabled'] and set a password
 208     (you'll need to generate the <img> tags with phpThumbURL()
 209     provided at the bottom of phpThumb.config.php). If you don't
 210     want people accessing your source images at all, you can
 211     place them outside DOCUMENT_ROOT on your server (as long as
 212     phpThumb/PHP has read access to the directory). The other
 213     option is to put your source images in a MySQL database
 214     and set $PHPTHUMB_CONFIG['mysql_query'] and related
 215     parameters in phpThumb.config.php to pull your source images
 216     from the database. That way it's impossible to retrieve the
 217     images except through phpThumb.php, and if high_security is
 218     enabled, then nobody can modify the parameters to view
 219     anything except what you want to show. So, yes, it's possible
 220     to use your own object, but it's probably better to use
 221     phpThumb.php if possible -- one notable issue is that
 222     phpThumb.php handles all the caching, so you're on your own
 223     to deal with that if you create your own object.
 224  
 225  
 226  Q: How do I write the output thumbnail back to a database instead
 227     of outputting to the browser or a file?
 228  A: See /demo/phpThumb.demo.object.php  Basically you need to call
 229     $this->GenerateThumbnail() then $this->RenderOutput() and then
 230     the output raw image data is found in $this->outputImageData
 231  
 232  
 233  Q: phpThumb runs slowly, as if the images aren't cached, when I use HTTP source
 234     images (not on my server). How can I make it go faster?
 235  A: $PHPTHUMB_CONFIG['cache_source_filemtime_ignore_remote'] = true;
 236     // if true, remote source images will not be checked for modification date and
 237     // cached image will be used if available, even if source image is changed or removed

 238  
 239  
 240  Q: What does the "cache_default_only_suffix" configuration option do?
 241  A: Cache files are normally created with big ugly names like
 242     "phpThumb_cache_www.example.com_src1a482c2c760463795ff18faf073b389f_par3e099041c2f4a73041a7f5d7e7fc481a_dat1119952152.jpeg"
 243     but if cache_default_only_suffix is enabled, cache filenames are simplified to
 244     "pic_thumb.jpg" (for example). The problem is that only one version of that
 245     thumbnail is possible, and you can never call it again with a different size,
 246     or different filters, etc.  Generally you don't want that enabled, but it's
 247     there because some people asked for it.
 248  
 249  
 250  Q: Why is the visual size of rotated images smaller than the unrotated images?
 251  A: phpThumb fits the rotated image into the 'w' and 'h' dimensions.
 252     Try not specifying a 'w' parameter: phpThumb.php?src=file.png&ra=15
 253     That should leave the image the apparent same size as the unrotated image
 254     (in actual fact the canvas size is enlarged to fit the rotated image in it).
 255  
 256  
 257  Q: How can I purge cached files when I delete the source image?
 258  A: You can either let phpThumb's built-in cache purging features (see phpThumb.config.php)
 259     take effect, or you can manually walk through your source images to delete and find
 260     the matching cache files and delete them:
 261       if ($dh = opendir($sourcedir)) {
 262         while ($file = readddir($dh)) {
 263           if ($file == $WhatIwantToDelete) {
 264             $md5 = md5_file($sourcedir.'/'.$file);
 265             unlink($phpthumb_cache_dir.'/phpThumb_cache_www.example.com_src'.$md5.'*.*');
 266           }
 267         }
 268         closedir($dh);
 269       }
 270  
 271  
 272  Q: What is the proper name for this script/program/library?
 273  A: The official name is "phpThumb()" but it may be written
 274     as simply "phpThumb" in short form (or where parentheses
 275     are not permitted), or "phpthumb" in case-insensitive
 276     environments. The following is a non-exhaustive sample of
 277     unacceptable forms: PHPthumb; phpThumbs; phpthump;
 278     phpthumbnailer; phpThumbnail; PHP Thumb; Phpthumb; etc.
 279  
 280  


Generated: Mon Dec 1 03:56:46 2008 Cross-referenced by PHPXref 0.7