【问题标题】:Xamarin.iOS Image on Image Watermark图像水印上的 Xamarin.iOS 图像
【发布时间】:2018-01-30 03:06:42
【问题描述】:

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

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

提前致谢!!

【问题讨论】:

    标签: c# xamarin xamarin.ios


    【解决方案1】:

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

    ImageContext 示例:

    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 背景。这是我的由于速度,首选方法。

    CISourceOverCompositing 示例:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多