假设我有一个 100x100 的图像。我想将图像放置在 500x500 的较大画布上。
我目前的方法是使用 UIGraphics 创建一个上下文,然后将图像绘制到上下文上。
UIGraphics.BeginImageContext(....);
ImageView.Draw (....);
这很好用,但它并没有我想要的那么快。我注意到 CIFilter 非常快。 有没有一种方法可以使用 CIFilters 将图像放置在更大的画布上,或者使用 GPU 而不是 CPU 的另一种方法? 我已经尝试过 CIFilters CICrop 和 CIPerspectiveTransform 但我似乎无法得到我想要的结果......
原始图像 100x100
我想要的结果图像为 500x500。我只是想使用 CIFilters 或一些 GPU 操作来获取图像并增加它的画布大小。
我尝试使用 CICrop 进行“反向裁剪”,但没有奏效。请注意,即使图像本身是 100x100,我也将 CIVector 的大小指定为 500x500,结果图像完全忽略了多余的空间,如果关闭则将其截断。这是我的代码:
CICrop crop = new CICrop();
crop.Image = ImageView.Image.CGImage;
crop.Rectangle = new CIVector(0, 0, 500, 500);
ImageView.Image = new UIImage(crop.OutputImage);
Console.WriteLine("ImageView.Image.size = "+ ImageView.Image.Size);