c++ - 如何选择图像旋转轴,Magick++?

标签 c++ imagemagick magick++

我想围绕图像中的某个点旋转图像。我正在使用魔法++。如何选择旋转轴?有旋转功能,但它只允许我设置度数而不能选择轴。

最佳答案

您需要创建一个仿射变换来映射旋转和过渡。示例...

Magick::Image img("rose:");
double
    originX = 50,
    originY = 75,
    angle = 45.0,
    radians = angle * atan2(1, 1)/45.0,
    sx = cos( radians ),
    rx = sin( radians ),
    ry = -rx,
    sy = sx,
    tx = originX * sx - originY * rx,
    ty = originX * rx + originY * sx;
Magick::DrawableAffine matrix(sx, rx, ry, sy, tx, ty);
img.virtualPixelMethod(Magick::TransparentVirtualPixelMethod);
img.affineTransform(matrix);

可以找到创建仿射矩阵的详细示例,包括共享和原点转换 Affine Matrix Transforms用法文档。包括指向 的有用链接脚本。

关于c++ - 如何选择图像旋转轴,Magick++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188660/

相关文章:

c++ - 文件名作为当前时间(自 C++ 纪元以来的秒数)

php - 使用 ImageMagick 将大 PDF 转换为 JPEG 返回 500 内部错误

c++ - ImageMagick "convert"实用程序 Magick++ 等效?

c++ - 使用 Magick++ 加载 ICC 配置文件

c++ - 如何在 Magick++ 中为文本添加自动换行

c++ - 确定 vector y 的元素是否出现在 vector x 中的最快方法

具有多个指针初始值设定项的 C++ for 循环

imagemagick - 将静止图像转换为带有过渡的视频

c++ - 使用另一个项目的 ImageMagick 静态编译会出现链接器错误

c++ - 通过剥离变量宏/模板/函数对来测试成员函数?