js图像裁剪php操作,使用JS和PHP裁剪和旋转图像

这篇博客讨论了如何在无法先本地测试的场景下寻找一个既能裁剪又能旋转图像的工具的挑战。作者建议使用Kroppr之外的资源来构建自己的解决方案,提供了两个用于图像旋转的库,并给出了一个简单的PHP脚本示例,该脚本接受旋转角度和裁剪坐标,使用GD库处理图像的旋转和裁剪。前端部分需要捕获旋转角度和裁剪点,以便与后端脚本交互。
摘要由CSDN通过智能技术生成

谷歌搜索了几天的工具后,除了Kroppr之外我什么都没发现,但是我无法承诺使用在部署之前无法在本地进行测试的工具.

我需要的是能够为用户提供裁剪和旋转图像的设施,并让服务器保存它,覆盖原始图像.似乎有很多裁剪工具,但没有什么可以旋转.

有这样的工具吗?

解决方法:

还没有人回答这个问题?嗯,我认为你很难找到一个能完全符合你喜欢的工具.我想你正在寻找类似于Kroppr的东西,但不是与服务有关.

所以这里有一些资源可以用来构建一个!

这两个看起来都很漂亮的库,可以让你旋转图像.

将此与裁剪器结合使用.显示图像的外观.

现在这里是偷偷摸摸的部分.你只需要跟踪两件事.

1)选定的旋转角度0-360

2)作物的x1,y1,x2,y2.

收集完这些数据后,调用服务器上的php脚本并传递图像操作的值(angle,x1,y1,x2,y2)这​​可以通过ajax,表单提交,或者您甚至可以使用GET直接将它们作为变量发送到URL中

现在使用GD进行PHP中的所有图像处理.

//Incoming infomation. This should be set by $_GET[] or $_POST[] rather than the hardcoded examples.

$x1 = 100;

$y1 = 100;

$x2 = 400;

$y2 = 400;

$degrees = 47;

$filename = 'images/ducks.jpeg';

//find the original image size

$image_info = getimagesize($filename);

$original_width = $image_info[0];

$original_height = $image_info[1];

//calculat what the new image size should be.

$new_width = abs($x2 - $x1);

$new_height = abs($y2 - $y1);

$image_source = imagecreatefromjpeg($filename);

//rotate

$rotate = imagerotate($image_source, $degrees, 0);

//rotating an image changes the height and width of the image.

//find the new height and width so we can properly compensate when cropping.

$rotated_width = imagesx($rotate);

$rotated_height = imagesy($rotate);

//diff between rotated width & height and original width & height

//the rotated version should always be greater than or equal to the original size.

$dx = $rotated_width - $original_width;

$dy = $rotated_height - $original_width;

$crop_x = $dx/2 + $x1;

$crop_y = $dy/2 + $y1;

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

imagecopyresampled($new_image, $rotate, 0, 0, $crop_x, $crop_y, $new_width, $new_height, $new_width, $new_height);

//save over the old image.

imagejpeg($new_image, $filename);

?>

这只是一个快速而又肮脏的例子,供你工作.如果你想让它适用于jpeg以外的图像类型,你需要做一些检查并使用GD的其他方法来处理.pngs或.gifs.旋转和裁剪代码将保持不变.

剩下的大部分修补现在都在前端,我会留给你决定.您需要捕获的只是旋转角度和x,y裁剪点.

希望这很有帮助.如果你需要更多关于前端的帮助,请告诉我.

附:我会发布更多资源链接,但显然我只允许发布2,因为我的声誉还不够高.

标签:javascript,php,rotation,image-manipulation,crop

来源: https://codeday.me/bug/20190723/1514840.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值