Reply to Re: [PHP] Resizing thumbnails to the browser

Your name:

Reply:


Posted by Dan Trainor on 08/23/05 00:32

Richard Lynch wrote:
> On Sun, August 21, 2005 3:04 pm, Murray @ PlanetThoughtful wrote:
>
>>I have a series of thumbnails on my site of photos I've taken that are
>>all
>>150px in width, but of variable height. I want to randomly display one
>>of
>>the thumbnails each time the home page of my site is loaded in a
>>column that
>>is 140px wide.
>>
>>I'm wondering if anyone can point me at some code that would achieve
>>this?
>>All of the thumbnails are in jpg format.
>>
>>So, essentially, I'm trying to resize the thumbnails down to 140px
>>wide
>>while maintaining the aspect ratio of the image's height.
>
>
> The scaling is easy.
>
> It's getting the damn browsers not to screw up that's hard :-)
>
> Actually, a cheap and easy way would be to just use:
> <img src="/image150.jpg" width="140">
>
> The penalties are:
> 1. The browser downloads a 150x??? image which is a TINY bit larger
> than 140x???, but, really, this is negligible.
>
> 2. The browser has to scale the image, and that's "slow" if it's a
> really really old slow computer.
>
>
> But, to do it "right" server-side.
>
> 1. Edit a .htaccess file and add this to it:
> <Files thumbnail>
> ForceType application/x-httpd-php
> </Files>
>
> This informs Apache that your 'thumbnail' file is REALLY a PHP file,
> even without the .php on the end.
>
> 2. Put this in 'thumbnail':
>
> <?php
> //Untested...
> $path = "/full/hard/drive/directory/path/to/your/images/";
> $image = imagecreatefromjpeg(filename($path . $_SERVER['PATH_INFO']));
> $width = imagesx($image);
> $height = imagesy($image);
> $new_width = 140;
> $new_height = round(140 * $height/$width);
> $new_image = imagecreatetruecolor($new_width, $new_height);
> // resource dst_image, resource src_image, int dst_x, int dst_y, int
> src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h
> imagecopyresamples($new_image, $image, 0, 0, 0, 0, $new_width,
> $new_height, $width, $height);
> ob_start();
> imagejpeg($new_image);
> $data = ob_get_contents();
> ob_end_clean();
> header("Content-type: image/jpeg");
> header("Content-length: " . strlen($data));
> echo $data;
> ?>
>
> Now, to use this script, make an IMG tag like:
>
> <img src="thumbnail/original150image.jpg" width="140">
>
> The browser will never know the image is dynamic, nor that you are
> using PHP, and that's the way you want it.
>


Hello, Richard -

Would the abovementioned use of ForceType also allow one to produce an
image given an HTTP GET query? I was tinkering around with something in
the past where I wanted to implement something such as:

<img src="http://example.com/myscript.php?site=1&image=2&something=3">

Would what you suggest force the server to return an image for that
given URL, so that the img src specification listed above will work?

Thanks!
-dant

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация