php图片并裁切
A. php有现成的插件可以裁剪图片成椭圆形吗
你好,解决方案:
如果是在页面中显示的话,css样式border-radius属性就能解决,不用真的裁剪图片:
可参考:www.w3school.com.cn/cssref/pr_border-radius.asp
希望对你有帮助!
B. 为什么用PHP对上传图片进行裁剪的时候,没成功,而且连上传的原图都没了
加个base64_decode方法试试:
$src = imagecreatefromstring(base64_decode(file_get_contents($src_path)));
C. PHP 长方形图片 不变形 裁剪 生成 正方形
$x = (200-150)/2;
imageresampled($thumb, $img_r2, 0, 0, $x, 0, $thumb_w, $thumb_h, 150, 150);
请看imageresampled详细介绍:
imageresampled
(PHP 4 >= 4.0.6, PHP 5)
imageresampled — 重采样拷贝部分图像并调整大小
说明
bool imageresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h )
imageresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。如果成功则返回 TRUE,失败则返回 FALSE。
dst_image 和 src_image 分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝(如果 dst_image 和 src_image 相同的话)区域,但如果区域交迭的话则结果不可预知。
注意: 因为调色板图像限制(255+1 种颜色)有个问题。重采样或过滤图像通常需要多于 255 种颜色,计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时,如果失败我们选择了计算结果最接近(理论上)的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果,例如空白(或者视觉上是空白)的图像。要跳过这个问题,请使用真彩色图像作为目标图像,例如用 imagecreatetruecolor() 创建的。
注意: 本函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。
D. 亲,你的PHP中实现图片裁剪并上传的例子还有么。方便给我一份么
你搜一下 PHP 图片裁剪 ,很多类似的代码
E. php 裁切图片问题 求助
用JS吧,直接设置选择大小,然后选取再截取即可!
F. 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=newImages("file");
if($_GET['act']=='cut'){
$image="0000.jpg";
$res=$images->thumb($image,false,1);
if($res==false){
echo"裁剪失败";
}elseif(is_array($res)){
echo'<imgsrc="'.$res['big'].'"style="margin:10px;">';
echo'<imgsrc="'.$res['small'].'"style="margin:10px;">';
}elseif(is_string($res)){
echo'<imgsrc="'.$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"上传成功!<ahref='".$path."'target='_blank'>查看</a>";
}
}else{
?>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd";>
<html>
<head>
<metaname="Author"content="SeekEver">
<metaname="Keywords"content="">
<metaname="Description"content="">
<metacontent="text/html;charset=UTF-8"http-equiv="Content-Type">
<scriptsrc="./js/jquery.min.js"type="text/javascript"></script>
<scriptsrc="./js/jquery.Jcrop.js"type="text/javascript"></script>
<linkrel="stylesheet"href="./css/jquery.Jcrop.css"type="text/css"/>
<scripttype="text/javascript">
jQuery(function($){
//Createvariables(inthisscope)toholdtheAPIandimagesize
varjcrop_api,boundx,boundy;
$('#target').Jcrop({
minSize:[48,48],
setSelect:[0,0,190,190],
onChange:updatePreview,
onSelect:updatePreview,
onSelect:updateCoords,
aspectRatio:1
},
function(){
//
varbounds=this.getBounds();
boundx=bounds[0];
boundy=bounds[1];
//StoretheAPIinthejcrop_apivariable
jcrop_api=this;
});
functionupdateCoords(c)
{
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
};
functioncheckCoords()
{
if(parseInt($('#w').val()))returntrue;
alert('.');
returnfalse;
};
functionupdatePreview(c){
if(parseInt(c.w)>0)
{
varrx=48/c.w; //小头像预览Div的大小
varry=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'
});
}
{
varrx=199/c.w; //大头像预览Div的大小
varry=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>
<formmethod="post"action="?act=upload"enctype="multipart/form-data">
<inputtype="file"name="file">
<inputtype="submit"value="上传">
</form>
<divstyle="float:left;"><imgid="target"src="0000.jpg" ></div>
<divstyle="width:48px;height:48px;margin:10px;overflow:hidden;float:left;"><img style="float:left;"id="preview"src="0000.jpg"></div>
<divstyle="width:190px;height:195px;margin:10px;overflow:hidden;float:left;"><img style="float:left;"id="preview2"src="0000.jpg"></div>
<formaction="index.php?act=cut"method="post"onsubmit="returncheckCoords();">
<inputtype="hidden"id="x"name="x"/>
<inputtype="hidden"id="y"name="y"/>
<inputtype="hidden"id="w"name="w"/>
<inputtype="hidden"id="h"name="h"/>
<inputtype="submit"value="裁剪"/>
</form>
</body>
</html>
<?php
}
?>
G. 如何使用PHP动态把JPEG图片切割成几块
<?php
$maxW=100; //准备将图片裁减成的小图的宽
$maxH=100; //准备将图片裁减成的小图的高
$link= "D:/Apache24/htdocs/web/test.jpg";//图片路径,自己修改
$img = imagecreatefromjpeg($link);
list($width, $height, $type, $attr) = getimagesize($link);
$widthnum=ceil($width/$maxW);
$heightnum=ceil($height/$maxH);
$iOut = imagecreatetruecolor ($maxW,$maxH);
//bool image ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h )
//将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
for ($i=0;$i < $heightnum;$i++) {
for ($j=0;$j < $widthnum;$j++) {
image($iOut,$img,0,0,($j*$maxW),($i*$maxH),$maxW,$maxH);//复制图片的一部分
imagejpeg($iOut,"D:/Apache24/htdocs/web/img/".$i."_".$j.".jpg"); //输出成0_0.jpg,0_1.jpg这样的格式
}
}
?>
已测试,可以使用。
H. 写了个PHP裁切图片类,没了header()这个就出错,加了后他刷新了页面我的$error和图片路径返回值就没了= =
header()前不能有任何输出,包括空格。
I. 怎么实现php上传图片并可以裁剪的功能,类似一些网站的头像截取,裁剪可以用jcrop插件。高分悬赏
php本身有裁剪图片的函数,js的截取一般是获得几个坐标,供这个函数作为参数,php在图片上传到服务器临时空间的时候,对图片进行裁剪,再按编程人的需求保存到指定目录。
网络下现成的,或者翻翻手册。