美文网首页
给图片添加图片水印(图片上绘制另一张图,并可设透明度)

给图片添加图片水印(图片上绘制另一张图,并可设透明度)

作者: 彧哥哥 | 来源:发表于2021-02-22 14:04 被阅读0次

1,效果图如下:
(在图片左上角添加了一个半透明的logo图片)

2,为方便使用,我们通过扩展UIImage类来实现添加图片水印功能
(水印图片透明度,位置,边距都可以设置)

//--- UIImageExtension.swift ---
import UIKit
 
extension UIImage{
     
    //水印位置枚举
    enum WaterMarkCorner{
        case TopLeft
        case TopRight
        case BottomLeft
        case BottomRight
    }
     
    //添加图片水印方法
    func waterMarkedImage(waterMarkImage:UIImage, corner:WaterMarkCorner = .BottomRight,
                          margin:CGPoint = CGPoint(x: 20, y: 20), alpha:CGFloat = 1) -> UIImage{
         
        var markFrame = CGRect(x:0, y: 0, width:waterMarkImage.size.width,
                               height: waterMarkImage.size.height)
        let imageSize = self.size
         
        switch corner{
        case .TopLeft:
            markFrame.origin = margin
        case .TopRight:
            markFrame.origin = CGPoint(x: imageSize.width - waterMarkImage.size.width - margin.x,
                                       y: margin.y)
        case .BottomLeft:
            markFrame.origin = CGPoint(x: margin.x,
                                       y: imageSize.height - waterMarkImage.size.height - margin.y)
        case .BottomRight:
            markFrame.origin = CGPoint(x: imageSize.width - waterMarkImage.size.width - margin.x,
                                       y: imageSize.height - waterMarkImage.size.height - margin.y)
        }
         
        // 开始给图片添加图片
        UIGraphicsBeginImageContext(imageSize)
        self.draw(in: CGRect(x: 0, y:0, width: imageSize.width, height: imageSize.height))
        waterMarkImage.draw(in: markFrame, blendMode: .normal, alpha: alpha)
        let waterMarkedImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
         
        return waterMarkedImage!
    }
}

3,使用样例

import UIKit
 
class ViewController: UIViewController {
     
    @IBOutlet weak var imageView: UIImageView!
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //给图片添加水印
        imageView.image = UIImage(named:"bg")?
            .waterMarkedImage(waterMarkImage: UIImage(named: "logo")!,
                              corner: .TopLeft,
                              margin: CGPoint(x: 20, y: 20), alpha:1)
    }
}

相关文章

  • 给图片添加图片水印(图片上绘制另一张图,并可设透明度)

    1,效果图如下:(在图片左上角添加了一个半透明的logo图片) 2,为方便使用,我们通过扩展UIImage类来实现...

  • iOS给图片添加文字水印和图片水印

    加水印的方式有很多,比如给图片添加图片水印、文字水印,或者给视频添加图片水印、文字水印。本文首先讲解如何给图片添加...

  • iOS图片加水印

    给图片加水印的原理就是把图片和水印绘制出来,然后生成一张新的图片,水印可以是文字,可以是图片,原理都一样

  • Android 上传图片添加水印功能

    近期项目中有给上传的图片添加水印功能,如下图所示 水印图片如下 项目中用到的是的水印覆盖到全部图片的效果,对水印图...

  • 15-Quartz2D演练

    图片水印 图片水印就是在图片的基础上绘制一些文字或logo,最终生成一张新的图片 在viewDidLoad方法中生...

  • iOS 图片处理

    本文主要列出简单的图片处理代码,如:压缩图形大小,裁剪图片,添加文字水印,添加图片水印,压缩图片大小并保存。 本来...

  • Android给图片加文字和图片水印

    先看效果图,左侧是原图,中间是添加文字水印,右侧是添加图片水印。 实现方法: 1、载入原始图片2、载入水印图片3、...

  • 用python来给图片加水印

    有时候我想在图片上添加自己的水印来防止别人盗图,所以今天给大家分享如何用python给我们的图片添加上水印。我们先...

  • Android图片处理(进阶)

    示例图 如图,将上述图片处理成各种样式 将彩色图片转化为灰图 将图片转成圆角图 图片添加倒影效果 添加水印 Vie...

  • Swift 随笔

    tableView刷新周期 UITextField 限制字数 图片添加图片水印 绘制虚线 Double 小数点后保...

网友评论

      本文标题:给图片添加图片水印(图片上绘制另一张图,并可设透明度)

      本文链接:https://www.haomeiwen.com/subject/yjohfltx.html