Php 基于带旋转的可拖动曲面生成图像位置
使用带有静态尺寸的Php 基于带旋转的可拖动曲面生成图像位置,php,image,image-processing,gd,image-resizing,Php,Image,Image Processing,Gd,Image Resizing,使用带有静态尺寸的div框时,我会加载比div更大或更小尺寸的图像,因此我可以旋转、更改大小,并将图像移动到div中 我通过css3实现旋转功能,jqueryui实现移动功能 在与图像交互时,我希望生成具有新位置、角度和大小的图像。因此,我向服务器发送图像的位置、旋转角度和新大小。 在服务器上,我生成一个具有div宽度和高度的图像。 问题是,当我有一个更大的图像,我改变了他的位置,我无法在服务器上生成相同的图像 以下是我生成新图像的算法,该图像的大小和宽度与div框(670/465)相同: $i
div
框时,我会加载比div
更大或更小尺寸的图像,因此我可以旋转、更改大小,并将图像移动到div
中
我通过css3实现旋转功能,jqueryui实现移动功能
在与图像交互时,我希望生成具有新位置、角度和大小的图像。因此,我向服务器发送图像的位置、旋转角度和新大小。
在服务器上,我生成一个具有div
宽度和高度的图像。
问题是,当我有一个更大的图像,我改变了他的位置,我无法在服务器上生成相同的图像
以下是我生成新图像的算法,该图像的大小和宽度与div
框(670/465)相同:
$imgFace=WideImage::load($src);
$newImage=$imgFace->resize($width,$height)->rotate($angle);//调整图像大小并旋转到$angle
$rotW=$newImage->getWidth();
$rotH=$newImage->getHeight();
$dx=$rotW-$width;
$dy=$rotH-$height;
if($width<670&&$height<465)//如果图像小于div框
{
$newImage->copyTo($img,$left,$top);//left和top是移动图像后css中的值
}else{//如果较大
$crop_x=$dx/2+$left;
$crop_y=$dy/2+$top;
$newImageCroped=$newImage->crop($crop\u x,$crop\u y,670465);
$newImageCroped->copyTo($img、$leftB、$topB);
}
简而言之,我在以下场景中遇到了问题:
- 当图像比
框高时,我移动它(只有一部分在div
框中)div
- 当图像旋转时,他在
中只有一部分图像div
$imgFace = WideImage::load($src);
$newImage = $imgFace->resize($width, $height)->rotate($angle); // resize the image and rotate to $angle
$rotW = $newImage->getWidth();
$rotH = $newImage->getHeight();
$dx = $rotW - $width;
$dy = $rotH - $height;
if($width < 670 && $height < 465) // if the image is smaller than the div box
{
$newImage->copyTo($img, $left, $top); // left and top are values from css after I move the image
} else { // if is larger
$crop_x = $dx/2 + $left;
$crop_y = $dy/2 + $top;
$newImageCroped = $newImage->crop($crop_x, $crop_y,670,465);
$newImageCroped->copyTo($img, $leftB, $topB);
}