You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JES中实现自动缩放?求助JES图片水印自动缩放方法

在JES中实现自动缩放水印并添加到目标图片

嘿,我来帮你搞定这个JES水印处理的需求!下面一步步教你实现自动缩放水印,再把它加到目标图片上:

一、核心思路:自动缩放的逻辑

我们要让水印自适应目标图片的大小,比如让水印宽度占目标图片宽度的10%(你可以根据需求调整这个比例),同时保持水印的原始宽高比,避免变形。具体步骤是:

  1. 获取目标图片和水印图片的尺寸
  2. 计算合适的缩放因子
  3. 用JES的内置函数缩放水印

二、具体代码实现

1. 先写一个自动缩放水印的函数

def autoScaleWatermark(targetPic, watermarkPic, scaleRatio=0.1):
    # 获取目标图片的宽度
    targetWidth = getWidth(targetPic)
    # 获取水印原始尺寸
    watermarkWidth = getWidth(watermarkPic)
    watermarkHeight = getHeight(watermarkPic)
    
    # 计算缩放因子:让水印宽度为目标图片宽度的scaleRatio倍
    scaleFactor = (targetWidth * scaleRatio) / watermarkWidth
    
    # 缩放水印图片,保持宽高比
    scaledWatermark = scalePicture(watermarkPic, scaleFactor)
    
    return scaledWatermark
  • scaleRatio参数默认设为0.1(也就是10%),你可以改成0.15(15%)或者其他数值,按需调整。
  • scalePicture是JES的内置函数,会按给定的因子等比例缩放图片。

2. 编写添加水印的主函数

接下来把缩放后的水印放到目标图片的角落(比如右下角,带点边距):

def addScaledWatermark(targetPath, watermarkPath, outputPath):
    # 加载目标图片和水印图片
    targetPic = makePicture(targetPath)
    watermarkPic = makePicture(watermarkPath)
    
    # 自动缩放水印
    scaledWatermark = autoScaleWatermark(targetPic, watermarkPic)
    
    # 获取缩放后水印的尺寸
    scaledW = getWidth(scaledWatermark)
    scaledH = getHeight(scaledWatermark)
    
    # 计算水印位置:右下角,留20像素边距(可调整)
    posX = getWidth(targetPic) - scaledW - 20
    posY = getHeight(targetPic) - scaledH - 20
    
    # 把缩放后的水印复制到目标图片上
    copyInto(scaledWatermark, targetPic, 0, 0, scaledW, scaledH, posX, posY)
    
    # 保存处理后的图片
    writePictureTo(targetPic, outputPath)
    print("水印添加完成!已保存到:" + outputPath)
  • copyInto函数的参数依次是:源图片(水印)、目标图片、源图起始x/y、源图宽度/高度、目标位置x/y。
  • 边距20像素可以改成你想要的数值,比如10或30。

三、怎么使用?

直接调用主函数就行,比如:

addScaledWatermark("C:/目标图片.jpg", "C:/水印.png", "C:/带水印的图片.jpg")

注意替换成你自己的图片路径哦!

小提示

  • 如果你的水印是透明背景的PNG,JES会自动保留透明效果,不用担心覆盖目标图片的内容。
  • 要是想把水印放在其他位置(比如左上角、居中),只需要修改posX和posY的计算逻辑就行。比如左上角的话,posX=20,posY=20。

内容的提问来源于stack exchange,提问作者Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:57:29