图片切割系统

上一阵子做过一个图片切割效果,得到很多人关注。其中有很多人向我询问如何做一个真正的图片切割(裁剪),这里需要声明一下:
首先js是不能操作客户端文件的(除非特殊情况),所以图片的切割必须在后台处理,对于客户端的图片可以先上传再切割或者把图片和切割参数一起传递到服务器再处理(上传文件不在本次讨论范围,请自行修改);
还有是通过客户端传递的参数来处理图片,确实能得到展示图或预览图的效果(这是针对有些提出在后台处理的图片得不到预览图的效果来说的),下面会举例说明如何生成展示图那样的图片。


程序说明

【客户端部分】

客户端部分详细请参考图片切割效果(建议没有看过的先看那里的例子),这里说说要传递到后台的参数,建议用GetPos获取部分参数:

var p = ic.Url, o = ic.GetPos();
= o.Left,
= o.Top,
= o.Width,
= o.Height,
pw 
= ic._layBase.width,
ph 
= ic._layBase.height;


其中,ic.Url是图片地址:ic.Url,o.Left是水平切割,o.Top是垂直切割点,o.Width是切割宽度,o.Height是切割高度,ic._layBase.width是图片宽度,ic._layBase.height是图片高度。

可以这样传递这些参数:

$("imgCreat").src = "ImgCropper.ashx?p=" + p + "&x=" + x + "&y=" + y + "&w=" + w + "&h=" + h + "&pw=" + pw + "&ph=" + ph + "&" + Math.random();


其中图片地址、图片宽度、图片高度如果是预先设定好的话就可以不传递了。

【后台部分】

后台主要是进行图片的处理和输出。

【图片切割】

在后台获取前台传递的参数:

Code


然后就用这些参数对图片进行切割了,先说说切割的原理,主要分两部:切割和缩放。

切割和缩放的程序关键在这里:

gbmPhoto.DrawImage(imgPhoto, new Rectangle(00, CutWidth, CutHeight), PointX * imgPhoto.Width / PicWidth, PointY * imgPhoto.Height / PicHeight, CutWidth * imgPhoto.Width / PicWidth, CutHeight * imgPhoto.Height / PicHeight, GraphicsUnit.Pixel);


首先是在原图切割出需要的部分。切割需要的参数是PointX、PointY、CutWidth、CutHeight,因为在客户端的程序中是可以缩放原图来进行切割的,所以要在在切割原图时需要先按比例缩放这些参数,还要注意PointX和CutWidth需要水平方向的比例,PointY和CutHeight需要垂直方向的比例。例如(其中imgPhoto是原图):
水平切割点:PointX * imgPhoto.Width / PicWidth;
切割宽度:CutWidth * imgPhoto.Width / PicWidth;
垂直切割点:PointY * imgPhoto.Height / PicHeight;
切割高度:CutHeight * imgPhoto.Height / PicHeight。

用这些参数就可以对原图进行切割了。

然后是缩放原图。可以想象,当切割好原图后,只要把图宽高缩放到CutWidth和CutHeight就可以得到跟展示图一样的图片了:

new Rectangle(00, CutWidth, CutHeight), 


下面是处理图片的程序:

Code


当然对于不同的需求可能要生成的效果也不一样,但只要能灵活运用对于一般的需求基本都能实现了。
如果需要保存图片到服务器,那么可以用下面的方法保存图片:

bmPhoto.Save(文件物理路径, System.Drawing.Imaging.ImageFormat.Jpeg);


【IHttpHandler】

程序通过ashx文件用IHttpHandler发送切割生成的图片,参考使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法
“利用.ashx文件是一个更好的方法,这个文件类似于.aspx文件,可以通过它来调用HttpHandler类,从而免去了普通.aspx页面的控件解析以及页面处理的过程。这个文件特别适合于生成动态图片,生成动态文本等内容。”

最后设置数据输出类型context.Response.ContentType,并使用context.Response.OutputStream向客户端输出图片数据:

context.Response.ContentType = "image/jpeg";
ResetImg(System.Web.HttpContext.Current.Server.MapPath(Pic), PicWidth, PicHeight, PointX, PointY, CutWidth, CutHeight).WriteTo(context.Response.OutputStream);


这个输出数据的方法适合用在不需要回发的数据输出中,例如ajax、动态图片等,关于这方面更详细的内容请看IHttpHandler接口

下面是完整服务器端代码:

Code


各位有什么建议或意见欢迎留言讨论,由于涉及后台操作,请下载完整实例测试。

下载完整测试实例(.net版本)
下载完整测试实例(asp版本)

ps:实例中没有加入图片,测试时请自己插入一张图片(默认是1.jpg)。
ps2:应要求把asp版本加上了,但需要支持aspjpeg组件。

转载请注明出处:http://www.cnblogs.com/cloudgamer/

如有任何建议或疑问,欢迎留言讨论。

如果觉得文章不错的话,欢迎点一下右下角的推荐。

程序中包含的js工具库CJL.0.1.min.js,原文在这里

posted @ 2008-10-05 00:20 cloudgamer 阅读(42384) 评论(192) 编辑 收藏

评论共2页: 上一页 1 2 
 回复 引用   
#93楼 2009-06-03 01:11 路由器
正好做个上传照片,先谢了

再个问题,我是菜鸟,前面的都成功,我还加了上传图片,我想把大小固定,比如:220x314在哪里设一下,还有就是保存,我在asp不成功。楼主能否提点一下,非常感谢!

 回复 引用   
#94楼 2009-06-03 01:17 路由器
不好意思,固定大小找到了
 回复 引用 查看   
#95楼[楼主] 2009-06-03 08:26 cloudgamer      
@路由器
asp是可以的
都测试过

 回复 引用   
#96楼 2009-06-17 12:34 123123123123[未注册用户]
点击生成图片后图片在哪里?

 回复 引用 查看   
#97楼[楼主] 2009-06-17 13:50 cloudgamer      
@123123123123
点击生成按钮后就看见

 回复 引用   
#98楼 2009-06-18 11:44 xuexi net[未注册用户]
楼主,生成的图片如何加的数据库里呢?
我在库里有个表,来存放生成的图片的路径,请问楼主,如何给数据库添加字段的值呢,也就是图片的路径,谢谢楼主!
有没有图片旋转的例子

 回复 引用 查看   
#99楼[楼主] 2009-06-18 11:56 cloudgamer      
@xuexi net
图片旋转这个程序没有
不过你可以通过滤镜扩展这个功能
本程序只是做图片上传部分不包括数据库
要扩展的话请自己研究

 回复 引用   
#100楼 2009-06-19 11:05 njurst[未注册用户]
为了能保证源图片的大小不变型缩放,在前台的var ic = new ImgCropper("bgDiv", "dragDiv", pic_path, {函数前加上如下代码:
var pic_path="<%=pic_path%>";
function re_img(){
var image=new Image();
image.src = pic_path;
y_width = image.width ;
y_height = image.height;
if (y_width/300>y_height/400){
s_width=300;
s_height=y_height/(y_width/300);
}else{
s_height=400;
s_width=y_width/(y_height/400);
}
}
re_img();
其中,var pic_path="<%=pic_path%>";这句是接受传递的图片地址信息

 回复 引用   
#101楼 2009-06-19 11:07 njurst[未注册用户]
if (y_width/300>y_height/400){
s_width=300;
s_height=y_height/(y_width/300);
}else{
s_height=400;
s_width=y_width/(y_height/400);
}

这里定义了图片裁剪框的宽度和高度

 回复 引用   
#102楼 2009-06-19 11:09 njurst[未注册用户]
还有个问题请教下:
如何放大或缩小源图?

 回复 引用 查看   
#103楼[楼主] 2009-06-19 11:11 cloudgamer      
@njurst 你去看看切割效果先把 http://www.cnblogs.com/cloudgamer/archive/2008/07/21/1247267.html
 回复 引用   
#104楼 2009-07-05 04:53 chinacto[未注册用户]
在哪里设置起始默认拖拽区的大小?
 回复 引用   
#105楼 2009-07-05 11:14 lc12d[未注册用户]
我点击生成图片怎么没有出现图片,那个显示图片的是个叉
 回复 引用 查看   
#106楼[楼主] 2009-07-05 13:31 cloudgamer      
@chinacto
直接修改dragDiv的样式

@lc12d
你用哪个版本


 回复 引用   
#107楼 2009-07-05 21:14 lc12d[未注册用户]
.net版的,就是不生成图片,不懂,看了你的代码,也找不出其中的原因,那个ImgCropper.ashx返回的就是图片在内存中的路径吗
 回复 引用 查看   
#108楼[楼主] 2009-07-06 09:14 cloudgamer      
@lc12d
实例中没有加入图片,测试时请自己插入一张图片(默认是1.jpg)。

 回复 引用 查看   
#109楼 2009-07-06 14:57 chinacto      

能不能切割图片之外的部分呢? 并且之外的部分用背景色填充.

 回复 引用   
#110楼 2009-07-07 09:47 lc12d[未注册用户]
我加入了图片,而且页面上已经成功显示我的图片了,就是点击生成图片按钮,它不生成图片,那个显示生成图片的依然是个叉
 回复 引用 查看   
#111楼[楼主] 2009-07-07 09:56 cloudgamer      
@lc12d
那你先确认ashx文件有没有程序错误

 回复 引用   
#112楼 2009-07-07 16:06 lc12d[未注册用户]
我直接下载你的东西,ashx文件我都没改一个字,说实话,我还没看懂那个呢,所以想知道,你自己试验可以生成图片吗??
 回复 引用 查看   
#113楼[楼主] 2009-07-07 16:14 cloudgamer      
@lc12d
我当然可以啊
这个只能你自己检测咯
估计是你那边的问题,你可以叫懂的人给你调试

 回复 引用   
#114楼 2009-07-07 19:13 lc12d[未注册用户]
难道是我机器的问题,我原版下载你的代码,就改了个图片地址,就不能生成切割图片了?
 回复 引用 查看   
#115楼[楼主] 2009-07-07 20:19 cloudgamer      
@lc12d
你也可以叫其他人测试
我这里确实可以

 回复 引用 查看   
#116楼 2009-07-08 15:25 张玉光      
生成的图片.失真.这个问题,大家有没有想到有什么好的办法??
我找这个方法找了好久了.尚未找到.. 找到的通知声.谢谢!! QQ185361451

 回复 引用 查看   
#117楼[楼主] 2009-07-08 16:04 cloudgamer      
@张玉光
这个要找图片处理专家咯

 回复 引用   
#118楼 2009-07-11 16:24 木炭[未注册用户]
楼主,不错哦!最近也在研究这个,不过我们要3天之内完成任务,哎,难到了!
 回复 引用 查看   
#119楼[楼主] 2009-07-12 13:03 cloudgamer      
@木炭
有什么问题可以一起研究

 回复 引用   
#120楼 2009-07-30 19:52 海寂寞[未注册用户]
感谢!好东西啊!下载了ASP的实例,但还是保存不了裁剪后的小图片。我学了点ASP,对JS不懂,希望用上这个。谢谢楼主,保存那部分怎么弄?
 回复 引用   
#121楼 2009-07-30 20:10 海寂寞[未注册用户]
谢谢楼主,看了从去年到今年的帖子,感谢!

没有看明白下面保存的语句放那个文件里?
//保存图片文件
string filePathAndName = HttpContext.Current.Server.MapPath("img/") + "01.jpg" ;
bmPhoto.Save(filePathAndName, System.Drawing.Imaging.ImageFormat.Jpeg) ;

后面带的分好应该是JS文件里的。但不知到方那个文件里?对JS不懂。非常想知道怎么用这个。生成的新的文件名是否可以放到表单的文本域里?这样方便写入数据库。

谢谢!

 回复 引用 查看   
#122楼[楼主] 2009-07-30 21:27 cloudgamer      
@海寂寞
实例中没有加入图片,测试时请自己插入一张图片(默认是1.jpg)。
asp版本需要支持aspjpeg组件。

 回复 引用   
#123楼 2009-07-31 21:32 海寂寞[未注册用户]
感谢博主!
问题基本上搞清楚了,在想办法加到网页里面,呵呵。

 回复 引用   
#124楼 2009-08-31 14:25 yuanying[未注册用户]
很感谢您 正需要这样的一个例子 以后会多关注您的 你的代码很漂亮
 回复 引用 查看   
#125楼 2009-09-10 02:23 网擎工作室      
大侠,你上面说的
bmPhoto.Save(文件物理路径, System.Drawing.Imaging.ImageFormat.Jpeg);
保存图片是.net的吧
我现在要写asp的,请问怎么保存截切后的图片啊

 回复 引用 查看   
#126楼[楼主] 2009-09-10 08:37 cloudgamer      
@网擎工作室
不是有一个asp版本的实例下载了吗

@yuanying
谢谢支持


 回复 引用 查看   
#127楼 2009-09-10 18:20 网擎工作室      
研究出来了,利用AspJpeg组件保存文件的方法,在ImgCropper.asp文件里加上这句:
Jpeg.Save Server.MapPath("文件路径/文件名.jpg")
就可以实现切割后图片的保存了
谢谢大侠的指点,我刚学ASP,对这些东西不是很懂--!

 回复 引用   
#128楼 2009-09-13 16:50 zhaohaijun[未注册用户]
大侠你好!
MemoryStream ms2 = new MemoryStream();
System.Drawing.Imaging.ImageFormat.Jpeg);
bmPhoto.Save(Server.MapPath("User/" + ms2+".jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

为什么本地没有生存图片啊?帮帮忙,大侠

 回复 引用 查看   
#129楼[楼主] 2009-09-13 20:24 cloudgamer      
@zhaohaijun
建文件夹了吗

 回复 引用   
#130楼 2009-10-10 19:02 Sunnijun[未注册用户]
感谢楼主,收藏了。
 回复 引用   
#131楼 2009-11-01 03:08 xiaozhou2008[未注册用户]
楼主看到你写的代码真的很开心,谢谢您作出这么好的程序,我现在有个问题,是否可以把容器里的图片水平和垂直居中,我不知道从哪里改!
 回复 引用 查看   
#132楼[楼主] 2009-11-01 10:33 cloudgamer      
@Sunnijun
谢谢支持

 回复 引用 查看   
#133楼[楼主] 2009-11-01 10:35 cloudgamer      
@xiaozhou2008
不能单独把图片局中
你把容器居中试试,这是样式的问题了

 回复 引用   
#134楼 2009-12-14 10:39 来看看[未注册用户]
东西不错,可是我想把握选着的图片显示出来,如果图片太大,可以拖放就好啦,512505643我的QQ,希望您能给我讲解一些,谢谢
 回复 引用 查看   
#135楼[楼主] 2009-12-14 11:59 cloudgamer      
@来看看
暂时没有这个功能呢
注意底图层切割层同时移动
控制层参数的相对移动
不是很容易

bmPhoto.Save(文件物理路径, System.Drawing.Imaging.ImageFormat.Jpeg);

这个没有用啊

可以了
 回复 引用   
#138楼 2010-05-19 16:35 jiss[未注册用户]
bmPhoto.Save("Image/123.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 这个我试了,不行,提示“GDI+ 中发生一般性错误。”是怎么回事呢?
 回复 引用   
#139楼 2010-05-19 16:38 jiss[未注册用户]
有谁试验成功的呢?我是用VS2008 调试的,,,
 回复 引用 查看   
#140楼[楼主] 2010-05-19 16:48 cloudgamer      
@jiss
网上找到的解决方法你试试
在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致“GDI+ 中发生一般性错误”的发生,通常有以下三种原因:
1. 相应的帐户没有写权限。
解决方法:赋予 NETWORK SERVICE 帐户以写权限。
2. 指定的物理路径不存在。
解决方法:
在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建。
if (!Directory.Exists(dirpath))
Directory.CreateDirectory(dirpath);
3. 保存的文件已存在并因某种原因被锁定。
解决方法:
重启IIS,解除锁定。并在代码中使用 using 语句,确保释放 Image 对象所使用的所有资源。

 回复 引用 查看   
#141楼 2010-06-01 11:31 chate      
我在代码里直接设定了按比例缩放(Scale:true),发现亮框贴住图片边缘时,由于比例缩放的原因,亮框中间用于拖拽的四个小方块有时候拖不动。所以我想把这四个小方块去掉,只保留亮框角上的四个拖拽小方块。
请问楼主需要改动哪个文件的哪段代码?
我基础不好,楼主能否指出需要修改实例中ImgCropper.htm、Drag.js、Resize.js的第几行代码?
谢谢!

 回复 引用 查看   
#142楼[楼主] 2010-06-01 14:16 cloudgamer      
@chate
把下面的去掉
<div id="rRight"> </div>
<div id="rLeft"> </div>
<div id="rUp"> </div>
<div id="rDown"></div>

Right: "rRight", Left: "rLeft", Up: "rUp", Down: "rDown",

 回复 引用 查看   
#143楼 2010-06-01 15:11 chate      
速度真快!已经解决了,谢谢老师!

上次在这提问注册了也不能发言,靠站内短信才联系上老师,那次是通过邮件附件解决问题的。老师每次答疑都这么干脆利落,我的小站会永久保留指向老师博客的链接,以示敬意!

 回复 引用 查看   
#144楼[楼主] 2010-06-01 21:37 cloudgamer      
@chate
谢谢支持
欢迎交流

 回复 引用   
#145楼 2010-06-04 15:46 文亚[未注册用户]
老师好!能帮忙解答下我的问题吗?
参数p=1.jpg&x=0&y=0&w=747&h=466&pw=747&ph=466打开时是正常的,
这样才能做到只定义图片的宽度或只定义图片的长度,而没定义的项目直接按图片等比例获得,如:比如原图747*466给定的参数是p=1.jpg&x=0&y=0&w=747&h=&pw=747&ph=466或是p=1.jpg&x=0&y=0&w=747&h=&pw=747&ph=
得到的结果同样是747*466

 回复 引用 查看   
#146楼[楼主] 2010-06-04 22:54 cloudgamer      
@文亚
各个参数都是必须的
不明白你少的这些参数要做什么

 回复 引用 查看   
#147楼 2010-07-24 13:55 tangsir      
唉!有php的吗?光asp.net和asp的啊!要php的!谢谢!
 回复 引用 查看   
#148楼[楼主] 2010-07-24 14:15 cloudgamer      
@tangsir
我不懂php的

 回复 引用 查看   
#149楼 2010-07-24 14:20 tangsir      
呵呵 没事 谢谢!

 回复 引用   
#150楼 2010-08-09 16:47 ruoruo89[未注册用户]
老师好!我想请问下,如果把老师你做的“JavaScript 图片上传预览效果 ”和这个图片切割整合到一起,就实现了上传,然后切割。
“JavaScript 图片上传预览效果 ”这个:
是用img控件来显示图片
“图片切割系统 ”是写了一个固定的图片来显示图片
如何把这个固定的图片换成img的图片呢?
我做不出来,希望老师指点讲解,谢谢!

 回复 引用 查看   
#151楼[楼主] 2010-08-09 18:02 cloudgamer      
@ruoruo89
应该是可以的
不过修改比较麻烦
我现在也没时间弄
你自己研究一下吧

 回复 引用 查看   
#152楼 2010-08-10 09:11 ruoruo89      
老师,请问下
“图片切割系统 ”是写了一个固定的图片来显示图片
这里能否换成控件来显示图片?
好像不能?

 回复 引用 查看   
#153楼[楼主] 2010-08-10 09:29 cloudgamer      
@ruoruo89
控件?你想干嘛

 回复 引用 查看   
#154楼 2010-08-10 10:17 ruoruo89      
哦,想把老师的“JavaScript”图片上传预览效果用到这上边来
如果能换成控件就很好做了,但是好像不能?嘿嘿我想的可简单了

 回复 引用 查看   
#155楼[楼主] 2010-08-10 10:36 cloudgamer      
@ruoruo89
应该要比较熟悉js的才好改

 回复 引用   
#156楼 2010-08-31 15:39 江江酱[未注册用户]
写的时候能不能不用那个$符号,和JQUERY冲突了,用起来很不方便.
 回复 引用 查看   
#157楼[楼主] 2010-08-31 16:00 cloudgamer      
@江江酱
你直接把代码里的$替换成其他符号就行

 回复 引用 查看   
#158楼 2010-09-03 14:31 メ﹎僋翫      
看到不少好东西,我来学习了
 回复 引用 查看   
#159楼 2010-09-14 16:39 tq0855n      
多谢楼主,代码贫道收下了,试用后再来请教
 回复 引用 查看   
#160楼[楼主] 2010-11-22 17:53 cloudgamer      
@メ﹎僋翫
@tq0855n
谢谢支持

 回复 引用 查看   
#161楼[楼主] 2010-11-22 17:56 cloudgamer      
@外婆我回来啦!
透明度是设置属性Opacity不知你设对没有

 回复 引用 查看   
#162楼[楼主] 2010-11-23 09:14 cloudgamer      
@外婆我回来啦!
估计是图片没加载完之前获取尺寸有问题
你试试用new Image加载图片onload后再初始化程序

 回复 引用 查看   
#163楼 2011-03-09 16:32 外婆我回来啦!      
发现了问题,如果把img的路径设置复杂一些,比如: new ImgCropper("bgDiv", "dragDiv", "../a/13.jpg",

初始化的时候viewDiv里面显示的图片就会和Cropper框到的不相同,我观察了好多次,其实viewDiv里面显示的图片是按照原图的大小截取的,就像图片没有受到dragDiv的压缩,所以感觉位置不对。 但是刷新之后这个问题又没有了,有时候刷新又没用。。 或者更换图片名称问题又会出现。 不知道到底是什么原因,因为不懂js所以弄不明白。 不知道楼主可不可以解决一下。。

 回复 引用 查看   
#164楼[楼主] 2011-03-09 20:49 cloudgamer      
@外婆我回来啦!
可能是图片加载的时候没处理好
你检查一下吧

 回复 引用 查看   
#165楼 2011-03-10 00:21 ydk1001      
老师你好,我用asp.net下用ImgCropper.aspx文件来调用,图示不显示,提示ImgCropper未定义,用ImgCropper.htm正常显示图片,不知道是什么原因,老师能不能给解决一下。
 回复 引用 查看   
#166楼[楼主] 2011-03-10 10:12 cloudgamer      
@ydk1001
编码都统一了吗

 回复 引用 查看   
#167楼 2011-03-10 13:04 ydk1001      
编码?老师您给详细解释一下好吗,我是个新手啊,拜托
 回复 引用 查看   
#168楼 2011-03-10 13:56 ydk1001      
老师,你真高,一句话就解决问题了,太感谢了,果然是编码的问题。谢谢
 回复 引用   
#169楼 2011-04-04 23:04 Mawenxiang[未注册用户]
希望楼主能在你的代码中加一个‘切换锁定拖动按钮’!
 回复 引用 查看   
#170楼 2011-04-06 13:55 sd213637      
resize.js里的参数
Scale:true
为什么无效啊,alert弹一直都是false。
我在子程序前面加了个this.Scale=true才生效。

 回复 引用 查看   
#171楼[楼主] 2011-04-09 07:50 cloudgamer      
@Mawenxiang
你可以自己试试

 回复 引用 查看   
#172楼[楼主] 2011-04-09 07:51 cloudgamer      
@sd213637
你应该改实例化的参数

 回复 引用   
#173楼 2011-05-03 15:27 sheq sing[未注册用户]
楼主
给你写个php 的图片存储程序,参数完全一致
保存文件在new.jpg;可以根据需要自己更改
调用时候 原来调用语句 改为
$("imgCreat").src = "test.php?p=" + p + "&x=" + x + "&y=" + y + "&w=" + w + "&h=" + h + "&pw=" + pw + "&ph=" + ph + "&" + Math.random();
附上处理文件内容
test.php
<?php
// Original image
$filename = $_GET['p'];
$PointX = $_GET['x'];
$PointY = $_GET['y'];
$CutWidth = $_GET['w'];
$CutHeight = $_GET['h'];
$PicWidth = $_GET['pw'];
$PicHeight = $_GET['ph'];

$newfile = 'new.jpg';
// Get dimensions of the original image
list($current_width, $current_height) = getimagesize($filename);

// The x and y coordinates on the original image where we
// will begin cropping the image
$left = $PointX * $current_width / $PicWidth;
$top = $PointY * $current_height / $PicHeight;

// This will be the final size of the image (e.g. how many pixels
// left and down we will be going)
$crop_width = $CutWidth * $current_width / $PicWidth;
$crop_height = $CutHeight * $current_height / $PicHeight;
// Resample the image
$canvas = imagecreatetruecolor($crop_width, $crop_height);
$current_image = imagecreatefromjpeg($filename);
imagecopy($canvas, $current_image, 0, 0, $left,$top , $CutWidth * $current_width / $PicWidth , $CutHeight * $current_height / $PicHeight);
imagejpeg($canvas, $newfile, 100);
?>

 回复 引用   
#174楼 2011-05-04 17:07 sheq sing[未注册用户]
我上传的那个php文件在chrome浏览器和ff里面都是可以的,但是ie不行,没有执行php文件,不知道为什么?楼主可以解释下为什么隐藏img,给img的src赋值就会触发php文件执行呢?
 回复 引用 查看   
#175楼[楼主] 2011-05-04 19:54 cloudgamer      
@sheq sing
我不懂php

 回复 引用   
#176楼 2011-05-06 10:44 sheq sing[未注册用户]
@cloudgamer
现在用ajax解决了

 回复 引用 查看   
#177楼 2011-05-18 17:56 melody&bobo      
IE6 有兼容性问题 怎么解决 楼主
 回复 引用 查看   
#178楼 2011-05-18 23:41 melody&bobo      
你的HTML 复制到aspx 在IE6下面就报错了。。求解
 回复 引用 查看   
#179楼 2011-05-19 22:04 melody&bobo      
IE9也不兼容
 回复 引用   
#180楼 2011-05-21 21:59 herou[未注册用户]
不错,学习中,谢谢。
 回复 引用 查看   
#181楼[楼主] 2011-05-22 08:12 cloudgamer      
@melody&bobo
ie6打开这里试试 没问题
ie9就不清楚了

 回复 引用 查看   
#182楼[楼主] 2011-05-22 08:12 cloudgamer      
@herou
谢谢支持

 回复 引用 查看   
#183楼 2011-06-13 15:54 水淼      
@jiss
你的那个保存图片问题解决了吗?

 回复 引用   
#184楼 2011-08-08 15:51 wanping[未注册用户]
你好,我想问你一个问题。
我用的是你的asp版本的图片切割程序。
我将ImgCropper.html改成asp页面,为了获取前一个页面传过来的照片地址,<input id="picpath" type="hidden" value="<%=picpath %>" />
var picpath = $j("#picpath").val();
//var picpath_2 = <%=picpath%>;
var ic = new ImgCropper("bgDiv", "dragDiv", picpath
在本地,寝室别的电脑上测试都没有问题,但是在学院测试时会出现照片显示不出来的问题,不知道怎么解决。
应该和照片加载有关,但是不太明白你写的程序,希望你能帮我解答一下,谢谢。

 回复 引用   
#185楼 2011-08-08 15:55 wanping[未注册用户]
还有,照片的地址是传过来了的,且没有错,照片存在。
 回复 引用 查看   
#186楼 2011-10-10 10:43 网站美工2011      
支持

www.xingfudiao.com 专业网站美工

 回复 引用   
#187楼 2011-12-26 14:30 wilson999[未注册用户]
楼主,请问如何才能将截好的图片保存啊?我装的aspjpeg能够正常运行 系统使用asp+mssql,点击生成图片时 系统提示我mappath中参数无效字符,我该如何修改?
 回复 引用   
#188楼 2012-02-06 17:14 cainiao1[未注册用户]
牛人:那个怎么设置裁减的啊,
 回复 引用   
#189楼 2012-02-07 11:21 新手2[未注册用户]
楼主,
我在改变那个裁减部分,那个白色的底图怎么,让他变成和裁减部分一样啊!新手求解;

 回复 引用   
#190楼 2012-02-07 11:27 新手2[未注册用户]
终于搞定了,哈哈,
 回复 引用   
#191楼 2012-02-07 14:00 bucas[未注册用户]
如何控制控制层(dragDiv)拖动时按照10px的步长移动,以及改变尺寸时按照10个象素的步长变化?
 回复 引用   
#192楼 2012-02-07 14:25 bucas[未注册用户]
控制层(dragDiv)的下边框和右边框在border之外有多余1~2px的白边?选择的区域跑到边框的外边了!怎么去掉这1~2px的白边?特急,望指教,谢谢。
评论共2页: 上一页 1 2 
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1303993 Y74pax/aM9E=