首页 > php教程 > PHP源码 > 正文

php+js在线剪切图片

PHP中文网
发布: 2016-05-25 17:10:40
原创
1237人浏览过

php+js在线剪切图片,客户端的鼠标画框部分目前谷歌浏览器测试基本通过,其它未通过。js代码还有待修改。

<?php
/*Created By RexLee
**PHP学习 2012-7-21 上午2:13:59
*/
$pic="pic/pic1.jpg";
$old_img=imagecreatefromjpeg($pic);
$width=$_GET["width"];
$height=$_GET["height"];
$c_pos_x=$_GET["c_pos_x"];
$c_pos_y=$_GET["c_pos_y"];
// $c_width=$_GET["c_width"];
// $c_height=$_GET["c_height"];
$img=imagecreatetruecolor($width, $height);
imagecopy($img, $old_img, 0, 0, $c_pos_x, $c_pos_y, $width, $height);
imagejpeg($img);
header("content-type:image/jpeg");
?>
登录后复制

2. [文件] cut.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cut My Picture</title>
<style type="text/css">
#pic {
	position: absolute;
	left: 520px;
	top: 11px;
	width: 318px;
	height: 449px;
	z-index: 1;
}
#msg {
	position: absolute;
	left: 339px;
	top: 106px;
	width: 136px;
	height: 151px;
	z-index: 2;
	text-align: center;
	font-family: "Arial Black", Gadget, sans-serif;
	font-size: 24px;
}
</style>
</head>
<body>

<p>
  <img src="pic/pic1.JPG" alt="hipic">
</p>
<p id="msg">left BEFORE<br>
  right AFTER
</p>
<br>
x点<input name="c_pos_x" value="" type="text"><br>
y点<input name="c_pos_y" value="" type="text"><br>
宽度<input name="width" value="" type="text"><br>
高度<input name="height" value="" type="text">
<input name="cut" type="button" onClick="cut()" value="cut">
<p id="pic">
</p>
</body>
</html>
<script type="text/javascript">
function cut(){
	var c_pos_x=document.getElementsByName("c_pos_x")[0].value;
	var c_pos_y=document.getElementsByName("c_pos_y")[0].value;
	var width=document.getElementsByName("width")[0].value;
	var height=document.getElementsByName("height")[0].value;
	document.getElementById("pic").innerHTML='<img src="cutpic.php?c_pos_x='+c_pos_x+
	'&c_pos_y='+c_pos_y+'&width='+width+'&height='+height+'">';
}
</script>
<script type="text/javascript" src="drawbox.js?1.1.6"></script>
登录后复制

3. [文件] drawbox.js

// JavaScript Document画矩形框 2012-7-21 上午5:39:23
(function(){
		document.getElementsByTagName("img")[0].draggable=false;
	    var w=document.getElementsByTagName("img")[0].width;
	    var h=document.getElementsByTagName("img")[0].height;
	    document.getElementsByTagName("p")[0].style.left="10px";
	    document.getElementsByTagName("p")[0].style.top="10px";
	    document.getElementsByTagName("p")[0].style.width=w+"px";
	    document.getElementsByTagName("p")[0].style.height=h+"px"
		document.getElementsByTagName("img")[0].onmouseover=function(){
			//alert(event.clientX);
			this.onmousedown=function(){
				//alert("hi");
				//get position
				var x=event.clientX;
				var y=event.clientY;
				//alert(x+" "+y);
				//Create Div Mask
				(function(){
					 	var p0 = document.createElement("p");// 定义新的元素节点变量
					   	var body0 = document.getElementsByTagName("body")[0];
						p0.id="mask"//赋予新建元素的属性
					  	p0.style.left=x+"px";
					 	p0.style.top=y+"px";
						p0.style.boder="#0099FF solid 1px";
						p0.style.zIndex=100;
						p0.style.backgroundColor="#CC0000";
						p0.style.position="absolute";
					   	body0.appendChild(p0);// 把新建的节点 添加到boxcon里
					})();
				x_old=event.clientX;
				y_old=event.clientY;
				this.onmousemove=function(){
						//Redraw Mask
						var x_new=event.clientX;
						var y_new=event.clientY;
						document.getElementById("mask").style.width;
						document.getElementById("mask").style.height;
						var dx=((x_new-x_old)<0)?(-(x_new-x_old)):(x_new-x_old);
						var dy=((y_new-y_old)<0)?(-(y_new-y_old)):(y_new-y_old);
document.getElementById("mask").style.width=/*(document.getElementById("mask").offsetLeft*/dx+"px";
document.getElementById("mask").style.height=/*(document.getElementById("mask").offsetHeight+*/dy+"px";
					}
				}
				this.onmouseup=function(){
		this.onmousemove=null;
	document.getElementsByTagName("input")[0].value=document.getElementById("mask").offsetLeft-10;
        document.getElementsByTagName("input")[1].value=document.getElementById("mask").offsetTop-10;
	document.getElementsByTagName("input")[2].value=document.getElementById("mask").offsetWidth;
	document.getElementsByTagName("input")[3].value=document.getElementById("mask").offsetHeight;
					}
		}
		
	})()
//话说我今天熬了个通宵,程序员要保重身体,长得帅的程序员更要保重身体啊!
//再也不能这样搞了,伤不起啊!!!
登录后复制

4. [图片] 截图20120721053103.png

1189.png

 以上就是php+js在线剪切图片的内容,更多相关内容请关注PHP中文网(www.php.cn)!

佐糖
佐糖

一个AI驱动的图像处理和图片编辑平台,支持在线抠图、去水印、模糊照片变清晰、无损放大、图片裁剪、图片压缩和黑白照片上色等

佐糖 62
查看详情 佐糖


相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号