我目前正在将图像嵌入到导出的SVG文档中,并且在UIView上遇到了我正在缩放和移动的转换矩阵的问题。
我的输出当前将矩阵推入属性变换
transform="matrix(view.transform.a, view.transform.b, view.transform.c, view.transform.d, view.transform.tx, view.transform.ty)"
除了转换的tx和ty值之外,这一切都完美无缺。出于某种原因,当我缩放视图时,这些值开始变得怪异,我不确定发生了什么。显然核心图形处理的矩阵与svg有点不同,但有谁知道差异是什么?
答案 0 :(得分:3)
看起来CoreGraphics设置了变换,因此矢量位于视图的中心,而在SVG中,矢量位于图像的左上角。
乘以变换为我解决了这个问题:
// create an offset matrix<br />
CGAffineTransform offset1 = CGAffineTransformMake(1, 0, 0, 1, -originalViewWidth/2, -originalViewHeight/2);
CGAffineTransform offset2 = CGAffineTransformMake(1, 0, 0, 1, originalViewWidth/2, originalViewHeight/2);
CGAffineTransform matrix = CGAffineTransformConcat(offset1, view.transform);
matrix = CGAffineTransformConcat(matrix, offset2);