Php 如何使用带有Imagick的jQuery断头台插件中的数据裁剪图像
我已经到处找了两天了,仍然没有任何帮助 我的项目允许用户在上传到我的php服务器之前选择图像大小和位置,但我无法根据从前端接收到的数据找出裁剪和缩放图像的正确方法 以下是我尝试过的: 我尝试处理的响应如下所示:Php 如何使用带有Imagick的jQuery断头台插件中的数据裁剪图像,php,image,crop,imagick,Php,Image,Crop,Imagick,我已经到处找了两天了,仍然没有任何帮助 我的项目允许用户在上传到我的php服务器之前选择图像大小和位置,但我无法根据从前端接收到的数据找出裁剪和缩放图像的正确方法 以下是我尝试过的: 我尝试处理的响应如下所示: { scale: 0.324, angle: 0, x: 110, y: 34, w: 300, h: 300 } 然后,php代码: $imagick = Image::make($destination . "/" . $fileName); $height = $imagick-
{ scale: 0.324, angle: 0, x: 110, y: 34, w: 300, h: 300 }
然后,php代码:
$imagick = Image::make($destination . "/" . $fileName);
$height = $imagick->height();
$width = $imagick->width();
$imagick->rotate($req['angle']);
//using the data recieved after user selection
$imagick->cropImage((int)$req['w'], (int)$req['h'], (int)$req['x'], (int)$req['y']);
//Write image to disk
$imagick->save($destinationPathSmaller . $fileName);
此时,图片无法正确显示。我真的不知道该怎么办,这是我的第三天了。请帮忙
感谢您的帮助,我不确定这是否只是复制和粘贴的不同,但我认为这可能是对库的简单误用 一个人。你有这一行:
$imagick = new Image($destination . "/" . $fileName);
但是他们建议你使用
$imagick = Image::make($destination . "/" . $fileName);
两者之间的区别在于,如果您只需调用新图像
,驱动程序将无法设置。因此,crop方法只是从他们拥有的AbstractDriver类中跳出,什么也不做。但是你可以调用Image::make
,它会的
如果情况并非如此,那么我还注意到您正在使用
writeImage
。基于更改创建文件的方法是。我在任何地方都找不到方法writeImage
。我不确定这是否只是复制和粘贴的不同,但我认为这可能是对库的简单误用
一个人。你有这一行:
$imagick = new Image($destination . "/" . $fileName);
但是他们建议你使用
$imagick = Image::make($destination . "/" . $fileName);
两者之间的区别在于,如果您只需调用新图像
,驱动程序将无法设置。因此,crop方法只是从他们拥有的AbstractDriver类中跳出,什么也不做。但是你可以调用Image::make
,它会的
如果情况并非如此,那么我还注意到您正在使用
writeImage
。基于更改创建文件的方法是。我在任何地方都找不到方法writeImage
。好的,所以我终于让它工作了
我感谢所有试图帮助我的人,以下是我在其他人面临同样问题时所做的:
使用和Imagick作为驱动程序
从API收集数据后,对其进行处理并像这样使用
$imagick = Image::make($destination . "/" . $fileName);
$width = $imagick->width() * $req['scale'];
$imagick->rotate($req['angle']);
$imagick->widen($width);
//Crop to desired width and height.
//Note: the width and height has to be same with what you set on your Guillotine config when instantiating it.
$imagick->crop($req['w'], $req['h'], $req['x'], $req['y']);
//Finally, Save your file
$imagick->save($new_destination . $fileName);
那应该很好用。好的,我终于让它工作了 我感谢所有试图帮助我的人,以下是我在其他人面临同样问题时所做的: 使用和Imagick作为驱动程序 从API收集数据后,对其进行处理并像这样使用
$imagick = Image::make($destination . "/" . $fileName);
$width = $imagick->width() * $req['scale'];
$imagick->rotate($req['angle']);
$imagick->widen($width);
//Crop to desired width and height.
//Note: the width and height has to be same with what you set on your Guillotine config when instantiating it.
$imagick->crop($req['w'], $req['h'], $req['x'], $req['y']);
//Finally, Save your file
$imagick->save($new_destination . $fileName);
这应该可以很好地发挥作用。在这个过程中,您在哪一部分遇到了故障?1.他们选择了一个图像。2.)他们会更改其上的设置。3.)他们发布带有设置的图像。4.)保存文件。这是第4点。)当我要保存文件时,我不知道如何裁剪数据,使其与用户选择的数据完全一致。您在
$req
数组中得到的值是什么?另外,我只是好奇。这是PHP中的Imagick
类派生的Image
类吗?它的crop
方法的工作原理是否与cropImage
相同?是的,crop
方法来自php干预,它使用Imagick
作为驱动程序。我从前端得到的值看起来像:{scale:1.4,angle:270,x:10,y:20,w:900,h:675}`在这个过程中的哪个部分发生了故障?1.他们选择了一个图像。2.)他们会更改其上的设置。3.)他们发布带有设置的图像。4.)保存文件。这是第4点。)当我要保存文件时,我不知道如何裁剪数据,使其与用户选择的数据完全一致。您在$req
数组中得到的值是什么?另外,我只是好奇。这是PHP中的Imagick
类派生的Image
类吗?它的crop
方法的工作原理是否与cropImage
相同?是的,crop
方法来自php干预,它使用Imagick
作为驱动程序。我从前端得到的值如下:`{scale:1.4,angle:270,x:10,y:20,w:900,h:675}`这是问题中的一个错误,我使用的是:$imagick=Image::make($destination./”$fileName)
但目前我没有任何php错误,只是我的图像没有按照我想要的方式调整大小。我在使用时使用writeImage
保存图像(不在文档中,但有效)。我不知道。我唯一能想到的另一件事是图像魔法没有正确配置。但是旋转也不会起作用。这是问题中的一个错误,我使用的是:$imagick=Image::make($destination./“$fileName)
但目前我没有任何php错误,只是我的图像没有按照我想要的方式调整大小。我在使用时使用writeImage
保存图像(不在文档中,但有效)。我不知道。我唯一能想到的另一件事是图像魔法没有正确配置。但那样的话,轮换也不会起作用。