[GLLUG] PHP/images/MySQL

Bruce Smith brucesmith@chartermi.net
04 Feb 2003 16:31:18 -0500


> Why can't you just use imagecopyresampled()?

Sure, if you have a powerful enough machine, or not much traffic.
Image resizing can be very CPU intensive.

 - BS

> http://www.php.net/manual/en/function.imagecopyresampled.php
> You need php 4.x and gd >2.x but it looks like what you want. 
> 
> 'On 4 Feb 2003, Bruce Smith wrote:
> 
> > If you don't mind multiple copies (different sizes) of the same image on
> > your hard drive, you can shrink them all very easily by using a simple
> > little script and the ImageMagick commands.
> > 
> > Here's an example that will shrink multiple images to 18% of the
> > original size, and give the new/shrunk file a new name by adding 
> > a "s" right before ".jpg":
> > 
> > ---------------------------------------------
> > #!/bin/sh
> > [ -z "$SHRINK" ] && SHRINK='18%'
> > echo "Shrinking to $SHRINK"
> > for f
> > do
> >         n=`echo $f | sed -e 's/.jpg/s.jpg/'`
> >         if [ -f "$n" ]; then
> >                 echo "overwrite $n? (y/n)"
> >                 read ans
> >                 [ "$ans" = "y" ] || continue
> >         fi
> >         echo "creating:  $n"
> >         convert -geometry $SHRINK "$f" "$n"
> > done
> > ---------------------------------------------
> > 
> > If the script name is "shrink", then run it like "shrink *jpg".
> > 
> > And it can easily be modified to shrink to a set resolution instead 
> > of a percentage.
> > 
> > I use it all the time to create thumbnails.  And I wrote a nice little
> > PHP script that reads the current directory and displays all the files
> > found in a thumbnail format for viewing . . .
> > 
> >  - BS
> > 
> > > In the past, I've used ImageMagick to perform the functions you are
> > > describing, so that everything is automated through the form, and all
> > > manipulation of images is done during initial upload / form processing.
> > > 
> > > Basically, you have your form, with all the user input you need
> > > contained in that form.  You'd also have a space for file upload fields
> > > (for your original images), however many you decide that you need.  When
> > > php processes the form, it can verify the type of file uploaded was an
> > > image (important step), then manipulate the image (resize, copy, etc.)
> > > as many times as you need to create your thumbnail / original image
> > > sets, then add / modify an entry in the database accordingly.  You could
> > > just name your files by upload time, split them up by directory or name
> > > (scaled_640_480_1044386407.jpg), and either store them in the database
> > > itself or just store their location in the database.
> > > 
> > > Difficult, and tedious, but not impossible.  I even have a working
> > > example that I'll sell you for a six-pack. ;)
> > > 
> > > --Brad Fears
> > > 
> > > 
> > > On Tue, 2003-02-04 at 13:21, Mike Szumlinski wrote:
> > > > Okay...here is what I'm trying to do and I can't figure out a good 
> > > > method.  Maybe someone else out there has a good idea on how to do this:
> > > > 
> > > > I have a user input through a form a bunch of random info (check boxes, 
> > > > text fields, etc), but I also need up to 4 images to correspond to the 
> > > > ID for that row.  Its for an inventory system.
> > > > 
> > > > The images also need to be thumbnailed and shrunk before they hit the 
> > > > folder/database (haven't figured out what is better yet). So basically 
> > > > each unique ID within the database has up to 8 images associated with 
> > > > it (4 thumbs, 4 640x480 images).
> > > > 
> > > > I can't quite think of how to pull it off.  I've done single image 
> > > > stores by just renaming the image the ID.jpg, but that won't work here. 
> > > >   I've thought about putting them into the table in the database, but I 
> > > > can't figure out how to use GD to shrink them down first if I do that.  
> > > > I'm sorta clueless on how to pull this off for now.  Any ideas?
> > > > 
> > > > -Mike