编辑并裁剪上传的图像

时间:2011-03-10 04:21:12

标签: php image resize crop uploader

你能帮我编辑一下这段代码吗?

function insert_lenses(){
    // to get userid
  $reg=$_SESSION['myusername'];
  $result_users = mysql_query("SELECT * FROM users WHERE user_name='$reg'");

  while($row_users = mysql_fetch_array($result_users))
    {
    $uid=$row_users[id];
    }

  $uploader = $_POST['uploader'];
  $path = 'photos/';
  $image=$_FILES['img_name'];
  $img_title=$_POST['title'];
  $img_tag=$_POST['tags'];
  $img_desc=$_POST['description'];
  $img_status=$_POST['status'];
  $lenses_id=$_POST['lenses'];
  $cam_id=$_POST['cams'];
  $date = date("d.m.Y");
  //------------------------------------------
  $image_size=$_FILES['img_name']['size'];
  $filename = stripslashes($_FILES['img_name']['name']);
  $extension = getExtension($filename);
  $extension = strtolower($extension);

  $image_name=time().'.'.$extension;
  $newname=$path.$image_name;
  $copied = copy($_FILES['img_name']['tmp_name'], $newname);


  if ($copied) {
    $sql=mysql_query("insert into images (uid, lid, imageurl, img_date, imagesize, imagedesc, imagetitle, imagetag, status,cam,lens,user_name,img_w,img_h)
VALUES('$uid','$lenses_id','$newname','$date','$image_size','$img_desc','$img_title','$img_tag','$$img_status','$cam_id','$lenses_id','$uploader','$w','$h')");



    return true;
  }else{
    echo "<center><h3>There are An Errors In Uploading!</h3></center>";
    return false;
  }
}


function getExtension($str) {
  $i = strrpos($str,".");
  if (!$i) { return ""; }
  $l = strlen($str) - $i;
  $ext = substr($str,$i+1,$l);
  return $ext;
}

$reg=$_SESSION['myusername'];
$result_users = mysql_query("SELECT * FROM users WHERE user_name='$reg'");

while($row_users = mysql_fetch_array($result_users))
  {
  $getid=$row_users[id];
  }

我需要在这个函数中添加RESIZE和CROP IMAGE像flickr和facebook img一样,我创建了一个新文件夹:/ img_croped

我想在此文件夹中插入新图像(调整大小并裁剪58 * 58px)

和:

 mysql_query("insert into images (small_img) VALUES('$croped')"); // URL VALUE

2 个答案:

答案 0 :(得分:2)

要调整图像大小和裁剪图像,请检查以下有助裁剪图像的代码:

<?php
   if( isset($_POST['submit']) ) {
      include('SimpleImage.php');
      $image = new SimpleImage();
      $image->load($_FILES['uploaded_image']['tmp_name']);
      $image->resizeToWidth(300);
      $image->resizeToHeight(200);
      $image->save('resizeImage.jpg');
      //$image->output();
   } else {
?>   <form action="" method="post" enctype="multipart/form-data">
      <input type="file" name="uploaded_image" />
      <input type="submit" name="submit" value="Upload" />
   </form><?php
   }
?>

检查this link(死亡)以查找调整大小图像的类别和更多细节。

答案 1 :(得分:0)

您可能想尝试使用imagemagick:

exec( "convert $newname -resize 58x58^ -gravity center -extent 58x58 /img_croped/$filename");

这会将较短边调整为58,然后将较长边裁剪为58像素(切边)