使用CGAffineTransformTranslate旋转后,将图像叠加到原始尺寸空间

马哈茂德·亚当

我正在使用以下库来旋转,缩放和移动图像ZoomRotatePanImageView

问题在于,如果在旋转后使用运动图像,则会丢失该图像,因为它会尝试根据其具有的新角度而不是平移手势方向来运动图像。

也就是说,当将图像旋转180度然后尝试将其向右移动时,它会向左移动(所有方向都相反)

UIPanGestureRecognizer这是CGAffineTransformTranslate用于处理图像的代码

- (IBAction) handlePan:(UIPanGestureRecognizer*)recogniser {
    if (recogniser.state == UIGestureRecognizerStateCancelled) {
        recogniser.view.transform = originalImageViewTransform;
        return;
    }

    if (recogniser.state == UIGestureRecognizerStateBegan) {
        originalImageViewTransform = recogniser.view.transform;
    }

    CGAffineTransform transform = recogniser.view.transform;
    CGPoint translation = [recogniser translationInView:self.superview];
    transform = CGAffineTransformTranslate(transform, translation.x, translation.y);


    [recogniser setTranslation:CGPointZero inView:self]; // This line means we don't need prevRotation

    if (recogniser.state == UIGestureRecognizerStateEnded) {
        // The gesture ended, so push an undo action before setting the transform.
        [self setTransform:transform ofView:recogniser.view undoTransform:originalImageViewTransform];
        if ([self.delegate respondsToSelector:@selector(saveImageStateWithTag:)])
            [self.delegate saveImageStateWithTag:self.tag];
    } else {
        // The gesture changed but didn't end, so don't push an undo action.
        recogniser.view.transform = transform;
    }
}

那么如何使图像根据原始尺寸空间而不是新的尺寸空间移动呢?

穆罕默德·萨利赫(Mohamed Saleh)

将以下行从

CGPoint translation = [recogniser translationInView:self.superview];

CGPoint translation = [recogniser translationInView:self];

将解决您的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用PDFSharp将图像叠加到PDF上

来自分类Dev

将图像旋转90、180或270度后,获取相对于原始图像的图像坐标

来自分类Dev

同心旋转叠加图像

来自分类Dev

同心旋转叠加图像

来自分类Dev

调整大小后的图像尺寸大于原始图像

来自分类Dev

调整大小后的图像尺寸大于原始图像

来自分类Dev

将包含图像叠加到页面中心的图像分组

来自分类Dev

使用 ffmpeg 将多个叠加层添加到单个图像

来自分类Dev

缩小原始图像中未使用的空间

来自分类Dev

使用BufferedImage和ImageIO将图像转换为byte []后,图像尺寸减小

来自分类Dev

使用Bootstrap将响应图像彼此叠加

来自分类Dev

将旋转90度的横向页面叠加到旋转0度的横向页面上

来自分类Dev

旋转后将图像放入ImageView内

来自分类Dev

尺寸更改后如何使用格式图像

来自分类Dev

旋转图像并调整空间

来自分类Dev

旋转时如何将图像保持在原始位置

来自分类Dev

将图像的原始像素数据旋转180度

来自分类Dev

使用CSS缩放图像,但限制为原始尺寸

来自分类Dev

在将图像添加到PDF之前如何旋转图像?

来自分类Dev

单击后使用JavaScript旋转图像

来自分类Dev

旋转图像时保留尺寸

来自分类Dev

使用PHP将PNG图像(在Photoshop中制作,具有透明性)叠加到JPG上

来自分类Dev

限制背景尺寸:包含原始图像尺寸

来自分类Dev

如何使用 Pytorch 将增强图像添加到原始数据集?

来自分类Dev

旋转后使用 AspectFit 将 UIView 保持在图像上的相同位置

来自分类Dev

使用AWS存储原始临时上传的图像(一旦过滤后将删除)

来自分类Dev

在Excel VBA中将图像添加到具有原始尺寸的范围

来自分类Dev

UIImagePicker图像尺寸大于原始图像

来自分类Dev

旋转图像后使用DrawImage()显示整个图像

Related 相关文章

  1. 1

    使用PDFSharp将图像叠加到PDF上

  2. 2

    将图像旋转90、180或270度后,获取相对于原始图像的图像坐标

  3. 3

    同心旋转叠加图像

  4. 4

    同心旋转叠加图像

  5. 5

    调整大小后的图像尺寸大于原始图像

  6. 6

    调整大小后的图像尺寸大于原始图像

  7. 7

    将包含图像叠加到页面中心的图像分组

  8. 8

    使用 ffmpeg 将多个叠加层添加到单个图像

  9. 9

    缩小原始图像中未使用的空间

  10. 10

    使用BufferedImage和ImageIO将图像转换为byte []后,图像尺寸减小

  11. 11

    使用Bootstrap将响应图像彼此叠加

  12. 12

    将旋转90度的横向页面叠加到旋转0度的横向页面上

  13. 13

    旋转后将图像放入ImageView内

  14. 14

    尺寸更改后如何使用格式图像

  15. 15

    旋转图像并调整空间

  16. 16

    旋转时如何将图像保持在原始位置

  17. 17

    将图像的原始像素数据旋转180度

  18. 18

    使用CSS缩放图像,但限制为原始尺寸

  19. 19

    在将图像添加到PDF之前如何旋转图像?

  20. 20

    单击后使用JavaScript旋转图像

  21. 21

    旋转图像时保留尺寸

  22. 22

    使用PHP将PNG图像(在Photoshop中制作,具有透明性)叠加到JPG上

  23. 23

    限制背景尺寸:包含原始图像尺寸

  24. 24

    如何使用 Pytorch 将增强图像添加到原始数据集?

  25. 25

    旋转后使用 AspectFit 将 UIView 保持在图像上的相同位置

  26. 26

    使用AWS存储原始临时上传的图像(一旦过滤后将删除)

  27. 27

    在Excel VBA中将图像添加到具有原始尺寸的范围

  28. 28

    UIImagePicker图像尺寸大于原始图像

  29. 29

    旋转图像后使用DrawImage()显示整个图像

热门标签

归档