分享

php 上传图片并生成大中小三张缩略图_普宁汤头

 GoTop 2008-03-04

本文共有两个文件
Upload.php

<?
session_start();
require_once("../inc/resizeToFile.func.php");
$iconurl=$_FILES["userfile"]["name"];
$picture=basename($iconurl);
$arr=explode(".",$picture);
$ext="";
ini_set("display_errors",0);
?>
<style type="text/css">
body,p,td{
font-size:9pt;
}
</style>
<body bgcolor="#eeeeee">
<?
if(isset($arr[count($arr)-1]))
{
$ext=$arr[count($arr)-1];
$ext=strtolower($ext);
if($ext=="gif" or $ext=="jpg" or $ext=="jpeg")
{
   //echo "你上传的文件格式是".$ext;
}else{
   echo "图片格式不正确<a href=\"javascript:history.back(-1);\">重来</a>";
   exit();
}
}else{
echo "图片格式不正确,<a href=\"javascript:history.back(-1);\">重来</a>";
exit();
}
if(file_exists("../images/upload/small_".$picture))
{
echo "请另选一张图片!<a href=\"javascript:history.back(-1);\">重来</a>";
exit();
}
if(move_uploaded_file($_FILES["userfile"]["tmp_name"],"./".$picture))
{
echo "上传成功!    ";
$_SESSION["uploaded_picture"]=$picture;
if($ext=="jpg" or $ext=="jpeg"){
   $im=imagecreatefromjpeg("./".$picture);
}elseif($ext=="gif")
{
   $im=imagecreatefromgif("./".$picture);
}else{
   exit();
}
$width=imagesx($im);
$height=imagesy($im);
if($width>$height){
   $small_width=80;
   $small_height=(80/$width)*$height;

   $medium_width=120;
   $medium_height=(120/$width)*$height;
}else{
   $small_height=80;
   $small_width=(80/$height)*$width;

   $medium_height=120;
   $medium_width=(120/$height)*$width;
}
if($width>500 || $height>500)
{
   if($width>$height)
   {$large_width=500;
   $large_height=(500/$width)*$height;

   }else{
    $large_height=500;
    $large_width=(500/$height)*$width;
   }
}else{
   $large_width=$width;
   $large_height=$height;
}
//echo $width.",".$height;
$toDir="../images/upload";
resizeToFile2($picture,$small_width,$small_height,$toDir."/small_".$picture,100);
resizeToFile2($picture,$medium_width,$medium_height,$toDir."/medium_".$picture,100);
resizeToFile2($picture,$large_width,$large_height,$toDir."/large_".$picture,100);
unlink($picture);
echo $picture."    <a href=\"javascript:history.back(-1);\">更换图片</a>";
}

?>
</body>

../inc/resizeToFile.func.php

<?php
/* resizeToFile resizes a picture and writes it to the harddisk
*
* $sourcefile = the filename of the picture that is going to be resized
* $dest_x       = X-Size of the target picture in pixels
* $dest_y       = Y-Size of the target picture in pixels
* $targetfile = The name under which the resized picture will be stored
* $jpegqual   = The Compression-Rate that is to be used
*/

function resizeToFile ($sourcefile, $dest_x, $dest_y, $targetfile, $jpegqual)
{
   

/* Get the dimensions of the source picture */
    $picsize=getimagesize("$sourcefile");

    $source_x = $picsize[0];
    $source_y = $picsize[1];
    $source_id = imageCreateFromJPEG("$sourcefile");

/* Create a new image object (not neccessarily true colour) */
       
    $target_id=imagecreatetruecolor($dest_x, $dest_y);

/* Resize the original picture and copy it into the just created image
   object. Because of the lack of space I had to wrap the parameters to
   several lines. I recommend putting them in one line in order keep your
   code clean and readable */
       

    $target_pic=imagecopyresampled($target_id,$source_id,
                                   0,0,0,0,
                                   $dest_x,$dest_y,
                                   $source_x,$source_y);

/* Create a jpeg with the quality of "$jpegqual" out of the
   image object "$target_pic".
   This will be saved as $targetfile */

    imagejpeg ($target_id,"$targetfile",$jpegqual);

    return true;

}


function resizeToFile2 ($sourcefile, $dest_x, $dest_y, $targetfile, $jpegqual)
{

    $picsize=getimagesize("$sourcefile");
    $source_x = $picsize[0];
    $source_y = $picsize[1];
    $arr=explode(".",$sourcefile);
    $ext="";
    if(isset($arr[count($arr)-1]))
    {
    $ext=$arr[count($arr)-1];
    $ext=strtolower($ext);
    }
    if($ext=="jpg" or $ext=="jpeg"){
   $source_id = imageCreateFromJPEG("$sourcefile");
    }elseif($ext=="gif"){
    $source_id =imagecreatefromgif("$sourcefile");
    }
    $target_id=imagecreatetruecolor($dest_x, $dest_y);
    $target_pic=imagecopyresampled($target_id,$source_id,
                                   0,0,0,0,
                                   $dest_x,$dest_y,
                                   $source_x,$source_y);

    imagejpeg ($target_id,"$targetfile",$jpegqual);
    return true;
}
?>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多