【发布时间】:2018-01-30 03:06:42
【问题描述】:
【问题讨论】:
标签: c# xamarin xamarin.ios
【问题讨论】:
标签: c# xamarin xamarin.ios
使用图像上下文,您可以绘制原始图像,然后在必要位置绘制水印,并从上下文中获取新图像。
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();
如果您的原始图像和水印图像大小相同,您可以使用CIFilter (CISourceOverCompositing) 将一张图像“叠加”在另一张图像之上(假设您的水印具有白色或 alpha 背景。这是我的由于速度,首选方法。
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);
}
【讨论】: