PHP 图像处理与旋转和裁剪

标签 php image rotation crop

我在 php 中处理图像时遇到问题。正如他们所说,一幅画描绘了一千个单词,所以下面是一张图片来帮助我解释我的情况。

Step 1

我有一个 Canvas (汽车的图片)和一个容器(红色矩形),上面的图像是我的初始设置。以下是我所了解的有关初始设置的详细信息:

  1. Canvas 尺寸(宽度和高度)
  2. 容器尺寸(宽度和高度)
  3. 容器相对于 Canvas 左上角的位置 (x, y)

接下来,我在 Canvas 上逆时针旋转一定角度。假设旋转中心是 Canvas 本身的中心。

Step 2

到这一步,我知道了 2 个额外的细节:

  1. 旋转角度
  2. 旋转方向(逆时针)

注意事项:

  1. 容器本身没有旋转,只有 Canvas 旋转。
  2. Canvas 的尺寸可能已更改。在这种情况下, Canvas 的宽度和高度都增加了。

轮换后我不再知道的细节:

  1. Canvas 尺寸
  2. 容器相对于 Canvas 左上角的位置

然后,容器用于在当前位置裁剪 Canvas 。下图是我尝试使用 php 实现的结果。

Step 3

我以前从未在 php 中做过任何图像处理。非常感谢代码示例。

最佳答案

我在这里找到了答案

Crop and rotate images with JS and PHP

我不知道我们必须手动获取旋转后 Canvas 的尺寸,并根据新的 Canvas 尺寸重新计算容器的相对位置。

关于PHP 图像处理与旋转和裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054123/

相关文章:

php - 如何自动循环每个组(类别)

php - 如何在php上实现上传文件的文件夹结构的创建

javascript - 在之前的 Canvas 上绘制一个旋转圆

Java脚本;在脚本中调用 src?

php - ffmpeg 用固定宽度改变高度

php - jquery 插件创建带有背景图像的方 block

ios - 创建具有可调整大小的自定义背景的 texview

Imagemagick添加和阅读评论

java - 为什么我的图像即使出现在 Eclipse 中也没有出现在可执行 jar 中?

c++ - 将图片旋转 90 度时复制像素 [Vec3d vs Vec3b]