100x100 の画像があるとします。画像を 500x500 の大きなキャンバス サイズに配置したいと考えています。
私の現在のアプローチは、UIGraphics を使用してコンテキストを作成し、そのコンテキストに画像を描画することです。
UIGraphics.BeginImageContext(....);
ImageView.Draw (....);
それはうまくいきますが、私がやっていることに対して私が望むほど速くはありません. CIFilters が非常に高速であることに気付きました。 CIFilters、または CPU ではなく GPU を使用する別の方法を使用して、より大きなキャンバス サイズに画像を配置する方法はありますか? 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);