您的位置:

php图片裁剪与缩放,php压缩图片大小

本文目录一览:

我要用PHP做一个缩放、裁剪后台图片的页面,该如何做?

按照我的理解应该是这样的 ,首先你的服务器上面有很多图片,但是图片尺寸不符合使用要求,你想给一个cms使用者制作一个可以裁减缩放图片的功能.

你的思路前面2步骤是没有问题的 .

但是第三个步骤是不对的

我们平常所看到的裁减功能.例如BAI度的头像设置.是用JS模拟一个框框来模拟裁减.只有当用户真正点击保存后.通过js记录了裁减的起始位置.结束位置,宽高.等参数.通过php的GD库来重新绘制这张图片.保存并替换掉原来的 ,并且更新数据库信息.知道用户点击保存之前.这张图片的数据源都没有发生变化.

php求助图片缩放裁切问题

这段代码可以通过自已选择来决定图片的大小!

效果图如下所示:希望对你有帮助!

其中

minSize: [48,48],

setSelect: [0,0,190,190],

是调整选取范围的大小,若你 调整为120和160就改为了

setSelect: [0,0,120,160],

就可以了!

?php

error_reporting(7);

date_default_timezone_set("Asia/Shanghai");

header("Content-type:text/html; Charset=utf-8");

require_once("./image.class.php");

$images = new Images("file");

if ($_GET['act'] == 'cut'){ 

 $image = "0000.jpg";

 $res = $images-thumb($image,false,1);

 if($res == false){

  echo "裁剪失败";

 }elseif(is_array($res)){

  echo 'img src="'.$res['big'].'" style="margin:10px;"';

  echo 'img src="'.$res['small'].'" style="margin:10px;"';

 }elseif(is_string($res)){

  echo 'img src="'.$res.'"';

 }

}elseif(isset($_GET['act'])  $_GET['act'] == "upload"){

 

 $path = $images-move_uploaded();

 $images-thumb($path,false,0);       //文件比规定的尺寸大则生成缩略图,小则保持原样

 if($path == false){

  $images-get_errMsg();

 }else{

  echo "上传成功!a href='".$path."' target='_blank'查看/a";

 }

}else{

?

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ";quot;;

html

 head

  meta name="Author" content="SeekEver"

  meta name="Keywords" content=""

  meta name="Description" content=""

  meta content="text/html; charset=UTF-8" http-equiv="Content-Type"

  script src="./js/jquery.min.js" type="text/javascript"/script

  script src="./js/jquery.Jcrop.js" type="text/javascript"/script

  link rel="stylesheet" href="./css/jquery.Jcrop.css" type="text/css" /

script type="text/javascript"

  jQuery(function($){

    // Create variables (in this scope) to hold the API and image size

      var jcrop_api, boundx, boundy;

     

      $('#target').Jcrop({

  minSize: [48,48],

  setSelect: [0,0,190,190],

        onChange: updatePreview,

        onSelect: updatePreview,

  onSelect: updateCoords,

        aspectRatio: 1

      },

 function(){

        // Use the API to get the real image size

        var bounds = this.getBounds();

        boundx = bounds[0];

        boundy = bounds[1];

        // Store the API in the jcrop_api variable

        jcrop_api = this;

    });

 function updateCoords(c)

 {

  $('#x').val(c.x);

  $('#y').val(c.y);

  $('#w').val(c.w);

  $('#h').val(c.h);

 };

 function checkCoords()

 {

  if (parseInt($('#w').val())) return true;

  alert('Please select a crop region then press submit.');

  return false;

 };

      function updatePreview(c){

        if (parseInt(c.w)  0)

        {

          var rx = 48 / c.w;  //小头像预览Div的大小

          var ry = 48 / c.h;

        $('#preview').css({

            width: Math.round(rx * boundx) + 'px',

            height: Math.round(ry * boundy) + 'px',

            marginLeft: '-' + Math.round(rx * c.x) + 'px',

            marginTop: '-' + Math.round(ry * c.y) + 'px'

          });

        }

     {

          var rx = 199 / c.w;  //大头像预览Div的大小

          var ry = 199 / c.h;

          $('#preview2').css({

            width: Math.round(rx * boundx) + 'px',

            height: Math.round(ry * boundy) + 'px',

            marginLeft: '-' + Math.round(rx * c.x) + 'px',

            marginTop: '-' + Math.round(ry * c.y) + 'px'

          });

        }

      };

    });

/script

 /head

 body

 form method="post" action="?act=upload" enctype="multipart/form-data"

  input type="file" name="file"

  input type="submit" value="上传"

 /form

 div style="float:left;"img id="target" src="0000.jpg"  /div

 div style="width:48px;height:48px;margin:10px;overflow:hidden; float:left;"img  style="float:left;" id="preview" src="0000.jpg" /div

 div style="width:190px;height:195px;margin:10px;overflow:hidden; float:left;"img  style="float:left;" id="preview2" src="0000.jpg" /div

 form action="index.php?act=cut" method="post" onsubmit="return checkCoords();"

  input type="hidden" id="x" name="x" /

  input type="hidden" id="y" name="y" /

  input type="hidden" id="w" name="w" /

  input type="hidden" id="h" name="h" /

  input type="submit" value="裁剪" /

 /form

 /body

/html

?php

?

如何实现PHP图片裁剪与缩放

给你段代码吧。上边的是具体的事务处理。下面的是类文件。

////////////////////////////////////////////////////下面开始处理图片压缩问题

$src = "$fileurl";

echo $src;

$image = new Image($src);

$width= $image-getimgwidth();

echo $width."宽度是这些";

if($width1024){

$coefficient=number_format(1024/$width, 4, '.', '');

echo $coefficient;

$image-percent = $coefficient;

$image-openImage();

$image-thumpImage();

//************************************重新给图片命名

$randname=date("Y").date("m").date("d").date("H").date("i").date("s").rand(100, 999).".".$hz;

echo "br/重新命名是这个".$randname;

$fileurl=$fileimgweb.$randname;//重新给数据库里存的图片地址命名

// $image-showImage();

$image-saveImage($fileurl);

}

////////////////////////////////////////////////////图片压缩问题处理结束

--------------------------------------------------------------------------------------

?php

/**

图片压缩操作类

v1.0

*/

class Image{

private $src;

private $imageinfo;

private $image;

public $percent = 0.5;

public function __construct($src){

$this-src = $src;

}

/**

获取图片的宽度并传输给前台

*/

public function getimgwidth(){

$imgwidth= getimagesize($this-src)[0];

// echo $imgwidth;

return $imgwidth;

}

/**

打开图片

*/

public function openImage(){

list($width, $height, $type, $attr) = getimagesize($this-src);

$this-imageinfo = array(

'width'=$width,

'height'=$height,

'type'=image_type_to_extension($type,false),

'attr'=$attr

);

$fun = "imagecreatefrom".$this-imageinfo['type'];

$this-image = $fun($this-src);

}

/**

操作图片

*/

public function thumpImage(){

$new_width = $this-imageinfo['width'] * $this-percent;

$new_height = $this-imageinfo['height'] * $this-percent;

$image_thump = imagecreatetruecolor($new_width,$new_height);

//将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度

imagecopyresampled($image_thump,$this-image,0,0,0,0,$new_width,$new_height,$this-imageinfo['width'],$this-imageinfo['height']);

imagedestroy($this-image);

$this-image = $image_thump;

}

/**

输出图片

*/

public function showImage(){

header('Content-Type: image/'.$this-imageinfo['type']);

$funcs = "image".$this-imageinfo['type'];

$funcs($this-image);

}

/**

保存图片到硬盘

*/

public function saveImage($fileurl){

imagejpeg($this-image, $fileurl,75);

// $funcs = "image".$this-imageinfo['type'];

// $funcs($this-image,$name.'.'.$this-imageinfo['type']);

}

/**

销毁图片

*/

public function destruct(){

imagedestroy($this-image);

}

}

?