我一直使用UIImagePickerController用于我的应用程序预览,我有自定义和放大/缩小按钮,我以前没有使用过CGAffineTransformScale,但是我已经使用CGAffineTransformScale搜索并实现了放大功能,如下所示……
- (void) zoom_in_clkd
{
preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);
}这看起来很好,但是我想实现缩小功能,我不知道在CGAffineTransformScale中它的sx,sy值应该是什么。
谁能告诉我一个好的使用CGAffineTransformScale的教程或示例代码
发布于 2013-02-16 13:44:18
我已经用不同的方式模拟了缩小功能,我所做的是我重置到身份(带回原始大小),并再次放大到我想要的位置,就像这样。
if (cameraTransformX == 2.0) {
preview_picker.cameraViewTransform = CGAffineTransformIdentity;
cameraTransformX -= 1.0;
} else if (cameraTransformX == 3.0) {
preview_picker.cameraViewTransform = CGAffineTransformIdentity;
preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);
cameraTransformX -= 1.0;
} else if (cameraTransformX == 4.0) {
preview_picker.cameraViewTransform = CGAffineTransformIdentity;
preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);
preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);
cameraTransformX -= 1.0;
}我知道这不是一种返回到以前的转换的正确方法,但它可以做到这一点。:)
发布于 2013-02-16 12:58:29
发布于 2015-12-14 17:37:10
我的解决方案是保存初始cameraViewTransform,并将其用于放大/缩小。对于缩小,您可以缩小比例,例如初始设置为3。以下是我的代码:
// initial cameraViewTransform
self.initialTransform = self.videoRecorderController.cameraViewTransform;
// for zoom in
if(self.zoomIn) {
// increment scale
self.scale += 0.5;
self.videoRecorderController.cameraViewTransform = CGAffineTransformScale(self.initialTransform, self.scale, self.scale);
}
// for zoom out
else {
self.scale -= 0.5;
self.videoRecorderController.cameraViewTransform = CGAffineTransformScale(self.initialTransform, self.scale , self.scale);
}https://stackoverflow.com/questions/14906974
复制相似问题