HomeMySQL Page 5 - Online Photo Album Development using PHP and GD: Part 1
Resizing Images - MySQL
This article is the first part of a four part series about saving money and space when it comes to showing off your pictures. Frank will be using PHP, MySQL and GD in this series.
We then resize our image to the specified size, passing to it the temporary image pointer, the original image, and the 4 parameters dealing with the co-ordinates and size (similar to the ones passed in the setThumbnail() function.
GD has a built-in function to destroy the original image uploaded. We'll use this function once our image has been resized, followed by assigning the value of $tmp_resize, to our resized image object ($this->resize).
Because we're not storing our images in a database, we need to copy the file over to our new images to our desired directories, specified in our constant variables.
imagejpeg($this->thumb, $this->thumbnail);
The imagejpeg() function will actually write the JPEG file information to a file that will now reside in the filesystem. We pass, as arguments, the thumbnail pointer ($this->thumb) and the object which will represent the actual thumbnail file ($this->thumbnail).
We then copy the image to our thumbnail directory, set the desired permissions (making use of PHP's chmod() function), and unlink/delete the temporary thumbnail image.
Our copyResizedImage() function is identical to the copyThumbImage() function, except that we work with the resized image rather than the thumbnail.
/***** * Generates a random number. Random number is used to rename * the original uploaded image, once resized. */ function getRandom(){ return "_" . date("dmy_His"); }
Our getRandom() function simply returns a string value with the current date and time with a seconds value.
/***** * Returns path to thumbnail image */ function getThumbLocation(){ return "thumbs/" . $this->random_file; }
The getThumbLocation() function returns the path to our thumbnail image, so that the value may be inserted into our database for retrieval later on.
/***** * Returns path to resized image */ function getImageLocation(){ return "photos/" . $this->random_file; }
The getImageLocation() returns the path to our resized image, which will be inserted into our database for retrieval later on.