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

镇江建设网站的公司十大免费行情软件推荐

镇江建设网站的公司,十大免费行情软件推荐,什么是网站权重,国外域名。国内网站由于每张图片的宽高比例不一致&#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/a/567359.html

相关文章:

  • 网站用什么语言编写加强政务公开与网站建设
  • 湖南有实力的关键词优化网络优化工程师吃香吗
  • 精品课程网站建设项目验收单西安网站建设小程序开发
  • 企业网站的页面布局南昌寻南昌网站设计
  • 找建站公司做网站注意事项wordpress微信启动
  • wordpress电影站模版html5网站开发需要框架吗
  • 怎么搭建视频网站应税服务网站开发开票
  • 外贸网站seo推广教程排版设计视频教程
  • 备案网站ip重庆网站建设套餐
  • 各级院建设网站的通知c语言新手入门代码
  • 做网站需要监事吗设计得好的网站推荐
  • 郑州做网站推广价格做网站的公司风险大不大
  • 《道德经》第四十六章
  • 网站自助搭建wordpress如何做一个导航页面
  • ftp怎么连接网站空间企业邮箱系统
  • 网站建设业务好做吗乌克兰武装部队最新战报
  • 宁波网站建设seo北京室内设计公司排名
  • 视频会议系统直播聊天网站开发网页备用页
  • 网站开发和软件开发哪个难西安保安公司
  • 禁止quark浏览器更新
  • 游戏网站策划书深圳平台型网站建设公司
  • 单页应用网站一般通过什么判断鱼的年龄
  • 部门网站建设注意事项建设网站需要分析什么
  • 组建团队建设网站与开发需要多少钱go语言视频网站开发
  • 做网站的回扣漯河seo公司
  • 网站建设 微盘下载最大的房产网站
  • 天津网站建设教程seo线上培训机构
  • 食品网站建设书商贸行业网站建设
  • 本地资讯网站做的最好的互联网+创新创业大赛
  • 网站建设管理工作自查报告中山做外贸网站