spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / programming / php / beginning / chap16 / 3 To page 1To page 2To page 3current page
[previous]

Beginning PHP4

Developer News
Mandrake Linux Founder Back, Virtually
Amazon: We're a Technology Company
Sun Expands MySQL With Closed Source

Try It Out - Resizing Images

The first thing we need to do is to create our script malldetail.php:

<?php
//malldetail.php
include "./common_db.inc";

$link_id = db_connect('mapping');
$query = "SELECT * FROM mall WHERE m_id=".$id;
$mallResult = mysql_query($query,$link_id) or die($query);
$mallRow = mysql_fetch_array($mallResult);
?>
<HTML>
  <HEAD><TITLE><?php echo $mallRow[1]; ?></TITLE></HEAD>
  <BODY>
    <H3><?php echo $mallRow[3]; ?></H3>
    <TABLE BORDER="0" WIDTH="500">
      <TR>
        <TD VALIGN="TOP" WIDTH="100">
        <IMG SRC="showmall.php?show=<?php echo $mallRow[0]; ?>&
                               thumbnail=on" WIDTH="100" HEIGHT="100">


        <TD VALIGN="TOP">
        <TABLE BORDER="0" WIDTH="300">
          <TR>
            <TD><b>Shop Number:</b><br> <?php echo $mallRow[2]; ?></br></TD>
            <TD><b>Phone Number:</b><br> <?php echo $mallRow[4]; ?></br></TD>
          </TR>
          <TR>
            <TD COLSPAN="2"><b>Keywords:</b><br>
              <?php echo $mallRow[7]; ?>
            </br></TD>
          </TR>
        </TABLE>
      </TD></IMG></TD></TR>
    </TABLE>
    <A HREF="javascript:history.back()">Return</A>
  </BODY>
</HTML>

We then have to modify our showmall.php script to handle thumbnails:

<?php
//showmall2.php
include "./common_db.inc";

Header("Content-type: image/png");
if ($show!="") {
   $image = ImageCreateFromPNG("groundfloor.png");
   $shops = explode(",", urldecode($show));

   $link_id = db_connect('mapping');

   $gray = ImageColorAllocate($image,204,204,204);
   for ($x=0;$x<count($shops);$x++) {
      $query = "SELECT m_area,m_center FROM mall WHERE m_id=".$shops[$x];
      $mallResult = mysql_query($query,$link_id);
      $mallRow = mysql_fetch_array($mallResult);
      $center = explode(",",$mallRow[1]);
      ImageFill($image,$center[0],$center[1],$gray);
   }
} else {
   $image = ImageCreate(100,50);
   $white = ImageColorAllocate($image,255,255,255);
   $black = ImageColorAllocate($image,0,0,0);
   ImageString($image,5,1,1,"Error",$black);
}
if ($thumbnail=="on") {
   $thumb = ImageCreate(100,100);
   ImageCopyResized($thumb,$image,0,0,0,0,100,100,500,500);
   ImagePNG($thumb);
} else {
   ImagePNG($image);
}
ImageDestroy($image);
?>

When we run our script we should this sort of result:

5

How It Works

Malldetail.php writes out an HTML file that contains the information about the shop, as well as a thumbnail image of the mall layout. This is the line that creates the image:

<IMG SRC="showmall.php?show=<?php echo $mallRow[0]; ?>&thumbnail=on" WIDTH="100" HEIGHT="100">

This is almost exactly as we've seen before; the only difference is that the script has the extra argument of thumbnail=on. In showmall.php we now check whether to output a thumbnail or the full size image. All we need to change is the line:

ImagePNG($image);

<para>We check for the value of $thumbnail, and if it's 'on' we resize the mall plan from its original dimensions of 500x500 to a more compact 100x100:
</para>
if ($thumbnail=="on") {
   $thumb = ImageCreate(100,100);
   ImageCopyResized($thumb,$image,0,0,0,0,100,100,500,500);
   ImagePNG($thumb);
} else {
   ImagePNG($image);
}

If the $thumbnail variable isn't set (or is set to anything other than "on") we display the image as normal.

home / programming / php / beginning / chap16 / 3 To page 1To page 2To page 3current page
[previous]

Copyright 1999 Wrox Press Ltd. and

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

webref The latest from WebReference.com Browse >
Working with the DOM Stylesheets Collection · Administering RBAC in PHP 5 CMS Framework · xref: Automatic Cross Referencing Script
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Combine BottomCount() with Other MDX Functions to Add Sophistication · Creating a Daemon with Python · The Coming Voice-over-WiMAX Revolution


Created: March 28, 2001
Revised: March 28, 2001


URL: http://webreference.com/programming/php/beginning/chap16/3/