[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