Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于图像水印的Xamarin.iOS图像_C#_Xamarin_Xamarin.ios - Fatal编程技术网

C# 基于图像水印的Xamarin.iOS图像

C# 基于图像水印的Xamarin.iOS图像,c#,xamarin,xamarin.ios,C#,Xamarin,Xamarin.ios,如何使用Xamarin.iOS c#将png图像作为水印添加到较大的图像中,并将输出保存到设备 我从发布的另一个问题中找到了Xamarin.Android版本 提前谢谢 使用图像上下文,您可以绘制原始图像,然后在必要的位置绘制水印,并从上下文中获取新图像 ImageContext示例: 如果原始图像和水印图像大小相同,可以使用CIFilter(CISourceOverCompositing)将一个图像“覆盖”在另一个图像上(假设水印具有白色或alpha背景。由于速度快,这是我首选的方法 CISo

如何使用Xamarin.iOS c#将png图像作为水印添加到较大的图像中,并将输出保存到设备

我从发布的另一个问题中找到了Xamarin.Android版本


提前谢谢

使用图像上下文,您可以绘制原始图像,然后在必要的位置绘制水印,并从上下文中获取新图像

ImageContext示例: 如果原始图像和水印图像大小相同,可以使用
CIFilter
CISourceOverCompositing
)将一个图像“覆盖”在另一个图像上(假设水印具有白色或alpha背景。由于速度快,这是我首选的方法

CISourceOverCompositing示例:
var originalImage = UIImage.FromBundle("buymore.jpg");
var watermarkImage = UIImage.FromFile("vs.png");

UIGraphics.BeginImageContextWithOptions(originalImage.Size, true, 1.0f);
originalImage.Draw(CGPoint.Empty);
watermarkImage.Draw(new CGRect(new CGPoint(200, 200), watermarkImage.Size));

var processedImage = UIGraphics.GetImageFromCurrentImageContext();
UIImage processedimage;
using (var filter = new CISourceOverCompositing())
{
    filter.Image = new CIImage(UIImage.FromBundle("vs.png"));
    filter.BackgroundImage = new CIImage(UIImage.FromBundle("buymore.jpg"));

    processedimage = UIImage.FromImage(filter.OutputImage);
}