当前位置: 首页 > wzjs >正文

河南英文网站建设公司做网站赚钱全攻略

河南英文网站建设公司,做网站赚钱全攻略,使用iframe做网站,做外贸的网站有何用处由于每张图片的宽高比例不一致&#xff0c;希望使得水印在每张图上的尺寸可以跟随背景图变化&#xff0c;自动调整水印大小。避免每张背景的图所显示的logo水印不至于那么突兀。 一、导入所需Jar包 <dependency><groupId>cn.hutool</groupId><artifactId…

由于每张图片的宽高比例不一致,希望使得水印在每张图上的尺寸可以跟随背景图变化,自动调整水印大小。避免每张背景的图所显示的logo水印不至于那么突兀。

一、导入所需Jar包

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.3</version> <!-- 请检查最新版本 --></dependency>

二、编写工具类

package com.example.file_handle.img_add_water_mark;import cn.hutool.core.date.DateUtil;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import lombok.extern.slf4j.Slf4j;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** @author: reshui* description: 添加水印图片工具类* DateTime:2025/4/23-15:15*/
@Slf4j
public class ImageWaterMarkUtil {/*** 文件暂存地址*/public static final String TEMP_FILE_PATH = System.getProperty("java.io.tmpdir");/*** 水印添加后文件存放地址*/private static final String WATER_MARK_FILE_PATH = TEMP_FILE_PATH + File.separator + "water_mark_after";/*** 时间格式*/public static String TIMESTAMP_FORMAT = "yyyyMMddHHmmss";/*** 水印图片url*/public static String WATER_MARK_IMG_URL = "https://profile-avatar.csdnimg.cn/128f2647a3ac408eafb94c7a6706689b_weixin_42477252.jpg!1";/*** 添加水印图片** @param originImgList 原始图片url* @param ratio         水印图片占背景图片的比例*/public static List<File> imgUrlAddWaterMarkForFileResult(List<String> originImgList, String watermarkImgFilePath, float ratio) throws Exception {String parentFormatDateTimeStamp = DateUtil.format(new Date(), TIMESTAMP_FORMAT);String imgFilePath = WATER_MARK_FILE_PATH + File.separator + parentFormatDateTimeStamp;log.info("imgFilePath:{}", imgFilePath);List<File> fileUrlList = new ArrayList<>();for (int i = 0; i < originImgList.size(); i++) {String originImg = originImgList.get(i);String leafFormatDateTimeStamp = DateUtil.format(new Date(), TIMESTAMP_FORMAT);String fileName = imgFilePath + File.separator + leafFormatDateTimeStamp + "_water_" + i + ".jpg";File file = FileUtil.touch(fileName);imgUrlAddWaterMark(originImg, watermarkImgFilePath, file, ratio);fileUrlList.add(file);}return fileUrlList;}/*** 添加水印图片** @param originImgList 原始图片url* @param ratio         水印图片占背景图片的比例*/public static List<File> imgFileAddWaterMarkForFileResult(List<String> originImgList, String watermarkImgFilePath, float ratio) throws Exception {String parentFormatDateTimeStamp = DateUtil.format(new Date(), TIMESTAMP_FORMAT);String imgFilePath = WATER_MARK_FILE_PATH + File.separator + parentFormatDateTimeStamp;log.info("imgFilePath:{}", imgFilePath);List<File> fileUrlList = new ArrayList<>();for (int i = 0; i < originImgList.size(); i++) {String originImg = originImgList.get(i);String leafFormatDateTimeStamp = DateUtil.format(new Date(), TIMESTAMP_FORMAT);String fileName = imgFilePath + File.separator + leafFormatDateTimeStamp + "_water_" + i + ".jpg";File file = FileUtil.touch(fileName);imgFileAddWaterMark(originImg, watermarkImgFilePath, file, ratio);fileUrlList.add(file);}return fileUrlList;}/*** 添加水印图片* 根据图片url** @param originalImagePath  背景图片url* @param watermarkImagePath 水印图片url* @param outPutFile         输出文件本地地址* @param ratio              水印图片占背景图片的比例*/private static void imgUrlAddWaterMark(String originalImagePath, String watermarkImagePath, File outPutFile, float ratio) throws IOException {// 读取原始图片URL url = new URL(originalImagePath);BufferedImage originalImage = ImageIO.read(url);// 读取水印图片URL watermarkImageUrl = new URL(watermarkImagePath);BufferedImage watermark = ImgUtil.read(watermarkImageUrl);imgAddWaterMark(originalImage, watermark, outPutFile, ratio);}/*** 添加水印图片* 根据图片file** @param originalImagePath  背景图片url* @param watermarkImagePath 水印图片url* @param outPutFile         输出文件本地地址* @param ratio              水印图片占背景图片的比例*/private static void imgFileAddWaterMark(String originalImagePath, String watermarkImagePath, File outPutFile, float ratio) throws IOException {// 读取原始图片BufferedImage originalImage = ImageIO.read(FileUtil.file(originalImagePath));// 读取水印图片BufferedImage watermark = ImgUtil.read(FileUtil.file(watermarkImagePath));imgAddWaterMark(originalImage, watermark, outPutFile, ratio);}/*** @param originalImage 原始图片url* @param watermark     水印图片url* @param outPutFile    输出图片路径*/private static void imgAddWaterMark(BufferedImage originalImage, BufferedImage watermark, File outPutFile, float ratio) throws IOException {// 读取原始图片int originalWidth = originalImage.getWidth();int originalHeight = originalImage.getHeight();// 读取水印图片// 计算水印新尺寸(保持原始宽高比), 水印宽度占背景图片宽度的30%int newWatermarkWidth = (int) (originalWidth * ratio);int newWatermarkHeight = (int) (watermark.getHeight() * ((float) newWatermarkWidth / watermark.getWidth()));// 缩放水印图片Image scaledWatermark = watermark.getScaledInstance(newWatermarkWidth, newWatermarkHeight, Image.SCALE_SMOOTH);// 计算水印位置(中下,留出边距)200x右移,200y下移int margin = 20;int xOffset = 0;int yOffset = (originalHeight / 2) - newWatermarkHeight / 2 - margin;ImgUtil.pressImage(originalImage,FileUtil.file(outPutFile),scaledWatermark, //水印图片xOffset, //x坐标修正值。 默认在中间,偏移量相对于中间偏移yOffset, //y坐标修正值。 默认在中间,偏移量相对于中间偏移1.0f);}//    public static void main(String[] args) throws Exception {
//        ArrayList<String> objects = new ArrayList<>();
//        for (int i = 1; i <= 6; i++) {
//            objects.add("C:\\Users\\86138\\Desktop\\xxx\\水印\\" + i + ".jpg");
//        }
//        addWaterMarkForFileResult(objects, "C:\\Users\\86138\\Desktop\\xxx\\水印\\water_mark_1.png", 0.3f);
//    }public static void main(String[] args) throws Exception {ArrayList<String> objects = new ArrayList<>();objects.add("https://i-blog.csdnimg.cn/direct/9a914d3108114ec78d4aad04fad21fea.png");   imgUrlAddWaterMarkForFileResult(objects, WATER_MARK_IMG_URL, 0.3f);}
}

三、实现效果图展示

http://www.dtcms.com/wzjs/566350.html

相关文章:

  • 云南省住房和城乡建设部网站wordpress 转载插件
  • 做网站得叫什么网站建设相关技术方案
  • 网站推广南京公司阿里云已备案域名出售
  • 外贸上哪个网站开发客户asp做的网站频繁报错 参数错误
  • 做设计必知网站自适应网站源码
  • 山东网站建设设计上海免费网站建设
  • 深圳地区网站建设网站建设费属于服务类么
  • 石家庄市城乡建设学校网站那种退不掉的网站怎么做的
  • wordpress英文企业网站模板怎样在网上卖东西
  • 网站开发综合实训北京网页设计工资一般多少
  • 网站优化我自己可以做吗智信建设职业培训学校网站
  • 企业网站用什么程序好深圳微信分销网站建设
  • 怎样开发设计网站建设西安市环评建设备案网站
  • 新手淘宝客在百度推广网站么做文山住房和城乡建设局网站
  • 为企业设计网站上海优化公司
  • 网站被360拦截怎么办linux下wordpress安装
  • 用c 做一个小网站怎么做广州公司注册代理中介
  • wordpress模板建站网站建设的简洁性
  • 武进网站建设怎么样做微信小程序
  • 公司网站建设方案拓扑图开发游戏的公司
  • 做电脑网站用什么软件计算机应用技术是学什么
  • 网站建设设计技巧windows服务器安装wordpress
  • 展台设计网站都有哪些公司网站建设注意
  • 淮安做网站的公司有哪些公司wordpress 在线demo
  • 什么网站可以找到防水工程做广州专业网站设计
  • 迅速百度网站自然排名添加到wordpress视频库中
  • 服装网站建设论文如何编写一套网站模板
  • 杭州网站建设电话ui设计需要学什么
  • 南通做网站多少钱软件研发过程管理
  • 太原做网站页面的wordpress视频曹鹏