##### 我写的盲水印版本速度上更快 ,参照了c的底层实现改编的 java 语法 。 结合先人的经验得以完成。希望能帮助有困惑的朋友
下面就是我的代码实现 :
首先是盲水印工具类
import org.bytedeco.javacpp.Loader;
import org.bytedeco.opencv.opencv_java;
import org.opencv.core.*;
import java.util.ArrayList;
import java.util.List;
import static org.opencv.core.Core.*;
import static org.opencv.core.Core.merge;
import static org.opencv.core.CvType.*;
import static org.opencv.core.CvType.CV_8UC1;
import static org.opencv.imgcodecs.Imgcodecs.imwrite;
import static org.opencv.imgproc.Imgproc.FONT_HERSHEY_COMPLEX;
import static org.opencv.imgproc.Imgproc.putText;
public class ImgWatermarkUtil {
/**
*
* 添加图片文字水印
*
* @param sourceFilePath 图片对象
* @param watermarkText 水印文字
*/
public static void addImageWatermarkWithText(String sourceFilePath, String watermarkText, String outputFilePath) {
List planes = new ArrayList<>(3);
List allPlanes = new ArrayList<>(3);
Mat src = ImgUtils.read(sourceFilePath, CV_8S);
splitSrc(src, allPlanes);
for (int i = 0; i < 3; i++) {
Mat res = new Mat();
Mat padded = allPlanes.get(i).clone();
padded.convertTo(padded, CV_32F);
Mat zeros = Mat.zeros(padded.size(), CV_32F);
List planesa = new ArrayList<>(2);
planesa.add(0, padded);
planesa.add(1, zeros);
merge(planesa, res);
dft(res, res);
//加水印
<