假设我有一张100x100的图片。我想把这张图片放到一个更大的500x500的画布上。
我的目前方法是使用UIGraphics创建一个Context,然后将图片绘制到该Context上。
UIGraphics.BeginImageContext(....);
ImageView.Draw (....);
这很好,但对于我正在进行的工作来说速度还不够快。我注意到CIFilters非常快。有没有一种方法可以使用CIFilters或其他使用GPU而不是CPU的方法将图像放置在较大的画布上?我已经尝试使用CIFilters的CICrop和CIPerspectiveTransform,但似乎无法获得所需的结果...
我的期望结果是一个500x500的图像。我只想使用CIFilters或某些GPU操作来扩展图像的画布大小。
我尝试使用CICrop进行"反向裁剪",但那行不通。请注意,我指定了CIVector的大小为500x500,即使图像本身是100x100,结果图像完全忽略了额外的空间并将其切掉了。以下是我的代码:
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);