CAtransform3d的单位

时间:2016-03-15 15:47:54

标签: ios objective-c

我正在使用GPUImage探索CAtransform3d。 CAtranform3d使用的单位是多少?我在文档中找不到,但我认为它应该是用于平移的像素和用于旋转的弧度。但是当我使用GPUImageTransformFilter将其用于仅1个像素的平移时,图像会在iphone的一半屏幕上被翻译。 (我正在将UIImage转换为GPUImage,然后在处理并将其设置为UIImageView后再返回)。有人可以指出可能是什么错误吗?

CATransform3D matrix = CATransform3DIdentity;
matrix.m41 = 1; // since the convention of CAtransform3d is transpose of normal transformation matrix
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:oldUIImage];

        GPUImageTransformFilter *stillImageFilter = [[GPUImageTransformFilter alloc] init];

        [stillImageFilter setTransform3D:matrix];

        [stillImageSource addTarget:stillImageFilter];
        [stillImageFilter useNextFrameForImageCapture];
        [stillImageSource processImage];

        UIImage *newUIImage = [stillImageFilter imageFromCurrentFramebuffer];

0 个答案:

没有答案