Working on the image library, I'm wanting to have all my resources / pictures available via a web site ... but I really don't want to hold them at full resolution - for our needs, 800 x 600 is quite big enough and the storage and bandwidth when I call up lots of pictures would be something of an issue.
Using PHP and the GD library, I'm copying and resizing images that would be over a quarter of a megabyte to download, using the following code, which you'll note maintains the aspect ratio, and limits the image to a maximum of 800 pixels wide, and 600 pixels tall.
if (filesize($fx) > 256000) {
$in_img = imagecreatefromjpeg($fx);
$width = $in_width = imagesx( $in_img );
$height = $in_height = imagesy( $in_img );
if ($width > 800) {
$height = $height * 800 / $width;
$width = 800;
}
if ($height > 600) {
$width = $width * 600 / $height;
$height = 600;
}
$img = imagecreatetruecolor( $width, $height );
imagecopyresized( $img, $in_img, 0, 0, 0, 0, $width, $height, $in_width, $in_height );
imagejpeg($img, "thumbs/$fx" );
$instr = fopen("thumbs/$fx","rb");
$imagebytes = fread($instr,filesize("thumbs/$fx"));
} else {
$instr = fopen($fx,"rb");
$imagebytes = fread($instr,filesize($fx));
}
I have used a temporary directory for my reduced size picture (they're not really small enough to be called thumbnails), and the $imagebytes variable gets sent out later in the PHP script as the response to the http request for the image. We're also (a story I have told
elsewhere) saving the image into a database.
Some more images in the new library ...
(written 2010-01-17)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
H309 - PHP - Maps, Graphics and Geographics [320] Ordnance Survey - using a 'Get a map' - (2005-05-22)
[563] Merging pictures using PHP and GD - (2006-01-13)
[665] PHP Image viewing application - (2006-04-01)
[937] Display an image from a MySQL database in a web page via PHP - (2006-11-22)
[1104] Drawing dynamic graphs in PHP - (2007-03-09)
[1194] Drawing hands on a clock face - PHP - (2007-05-19)
[1389] Controlling and labelling Google maps via PHP - (2007-10-13)
[1390] Converting from postal address to latitude / longitude - (2007-10-13)
[1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
[1628] Gant charts - drawing them with a PHP script - (2008-05-03)
[1724] addslashes v mysql_real_escape_string in PHP - (2008-07-27)
[1734] All around the world? - (2008-08-03)
[1752] Dynamic maps / geographics in PHP - (2008-08-13)
[1756] Ever had One of THOSE mornings? - (2008-08-16)
[1923] Making it all worthwhile - (2008-12-04)
[1956] Images for Christmas - (2008-12-21)
[2343] World Flags in your PHP pages - (2009-08-10)
[2361] Geocoding - converting address to latitude / Longitude with PHP via Google - (2009-08-14)
[2390] Dynamic / changing images on your web page - (2009-09-01)
[2675] Redirecting to your main domain for correct security keys - (2010-03-13)
[2729] Uploading a document or image to its own URL via a browser - (2010-04-18)
[2939] Protecting your images from use out of context - (2010-08-29)
[3027] Server logs - drawing a graph of gathered data - (2010-11-03)
[3133] An image from a website that occasionally comes out as hyroglyphics - (2011-01-14)
[3197] Finding and diverting image requests from rogue domains - (2011-03-08)
[3211] Computer Graphics in PHP - World (incoming data) to Pixel (screen) conversion - (2011-03-24)
[3447] Needle in a haystack - finding the web server overload - (2011-09-18)
[3536] UK Mapping Data - and more to come - under government Open Data measures - (2011-12-03)
[3584] QR codes - graphics images that provide quick phone links - (2012-01-18)
[3734] QR codes with marketing logos embedded - (2012-05-16)
[3817] Fpdf - generating .pdf documents easily from your PHP program - (2012-07-24)
[4178] Where are you? How to write a geosensitive application - (2013-09-18)
[4365] The changing face of Christmas - (2014-12-26)
[4437] Adding a PHP build option, rotating an image based on camera data, and a new look at thumbnails in PHP - (2015-02-22)
[4655] Image indexer / thumbnail display scripts in PHP - (2016-02-25)
Some other Articles
Bowerhill as a cycling communityAnd and Or illustrated by locksConsultation in Melksham, on Melkshams futureMelksham Food and Drink Festival, 2010Reducing image size on digital photos - PHPStarting to arrange the picture librarySnow scenes - and how snow effected our businessC course inspires new teaching examplesCreating, setting up and using objects in C++Where are your objects stored in C++?