Ok, since I've posted questions about this on a few occasions, I thought I'd be kind, 
and share the solution I have found to creating dynamic thumbnails from images stored 
within a MySQL database. For the sake of brevity, I will only show an example for 
jpeg...

To begin with, add your image to your Database.  I opted to only pretreat my binary 
data with the addslasshes command.

Once your image is in the database, you need to be able to pull it out in a normal 
fashion. The getpic.php script handles this:

<?php
if($id) {
    mysql_connect("$DBHOST","$DBUSER","$DBPASS");
    mysql_select_db("$DBNAME");
    $query = "select image,type from images where id=$id";
    $result = mysql_query($query);
    $data = mysql_result($result,0,"image");
    $type = mysql_result($result,0,"type");
    Header( "Content-type: $type");
    echo $data;
};
?>

Using getpic.php in conjuction with the <IMG> tag can display the fullsize picture.

Now, to the fun part! Dynamicly creating a thumbnail from the fullsize binary within 
your database. To create the thumbnail, I have a script called mkthumb.php:

<?php
          $src = 
imagecreatefromjpeg("http://www.barkingrat.com/photo/getpic.php?id=$id";);
          $twidth = imagesx($src)/3;
          $theight = imagesy($src)/3;
          $img = imagecreate($twidth,$theight);
          
imagecopyresized($img,$src,0,0,0,0,$twidth,$theight,imagesx($src),imagesy($src));
          imagejpeg($img);
          imagedestroy($img);
?>

You use mkthump.php in the same exact way that you use getpic.php.  Now, obviously, 
mkthumb.php needs to be modified to handle filetypes other than jpeg. That should be a 
simple task, I just haven't done it yet.... should be as simple as checking the file 
type (I insert the type into a column when I store the original image)


this works.....  if anyone can think of a better way to do anything I have done, feel 
free to add your 2 cents....  I'm certainly open to it.  :)

Jason Bell

Reply via email to