Record Class TextWatermark

java.lang.Object
java.lang.Record
cloud.opencode.base.image.watermark.TextWatermark
Record Components:
text - the watermark text | 水印文字
position - the position | 位置
font - the font | 字体
color - the text color | 文字颜色
opacity - the opacity (0.0 to 1.0) | 透明度
margin - the margin from edge | 边缘间距

Features | 主要功能:

  • Immutable text watermark configuration - 不可变的文字水印配置
  • Builder pattern and factory methods - 构建器模式和工厂方法
  • Configurable font, color, position, opacity, and margin - 可配置的字体、颜色、位置、透明度和边距

Security | 安全性:

  • Thread-safe: Yes (immutable record) - 线程安全: 是(不可变记录)
  • Null-safe: No (text must not be null) - 空值安全: 否(文字不能为 null)
All Implemented Interfaces:
Watermark

public record TextWatermark(String text, Position position, Font font, Color color, float opacity, int margin) extends Record implements Watermark
Text Watermark 文字水印

Immutable record for text watermark configuration.

文字水印配置的不可变记录。

Usage Examples | 使用示例:

// Simple watermark
TextWatermark watermark = TextWatermark.of("Copyright 2024");

// With position
TextWatermark watermark = TextWatermark.of("Copyright", Position.BOTTOM_RIGHT);

// With builder
TextWatermark watermark = TextWatermark.builder()
    .text("© 2024 Company")
    .position(Position.BOTTOM_RIGHT)
    .font(new Font("Arial", Font.BOLD, 24))
    .color(Color.WHITE)
    .opacity(0.8f)
    .build();
Since:
JDK 25, opencode-base-image V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Field Details

    • DEFAULT_FONT

      public static final Font DEFAULT_FONT
      Default font | 默认字体
    • DEFAULT_COLOR

      public static final Color DEFAULT_COLOR
      Default color | 默认颜色
    • DEFAULT_OPACITY

      public static final float DEFAULT_OPACITY
      Default opacity | 默认透明度
      See Also:
    • DEFAULT_MARGIN

      public static final int DEFAULT_MARGIN
      Default margin | 默认边距
      See Also:
  • Constructor Details

    • TextWatermark

      public TextWatermark(String text, Position position, Font font, Color color, float opacity, int margin)
      Compact constructor with validation 紧凑构造函数(带验证)
  • Method Details

    • of

      public static TextWatermark of(String text)
      Create simple text watermark 创建简单文字水印
      Parameters:
      text - the watermark text | 水印文字
      Returns:
      the watermark | 水印
    • of

      public static TextWatermark of(String text, Position position)
      Create text watermark with position 创建带位置的文字水印
      Parameters:
      text - the watermark text | 水印文字
      position - the position | 位置
      Returns:
      the watermark | 水印
    • of

      public static TextWatermark of(String text, Position position, Font font)
      Create text watermark with position and font 创建带位置和字体的文字水印
      Parameters:
      text - the watermark text | 水印文字
      position - the position | 位置
      font - the font | 字体
      Returns:
      the watermark | 水印
    • builder

      public static TextWatermark.Builder builder()
      Create a builder 创建构建器
      Returns:
      the builder | 构建器
    • builder

      public static TextWatermark.Builder builder(TextWatermark watermark)
      Create a builder from existing watermark 从现有水印创建构建器
      Parameters:
      watermark - the existing watermark | 现有水印
      Returns:
      the builder | 构建器
    • withText

      public TextWatermark withText(String newText)
      Create copy with different text 创建使用不同文字的副本
      Parameters:
      newText - the new text | 新文字
      Returns:
      new watermark | 新水印
    • withPosition

      public TextWatermark withPosition(Position newPosition)
      Create copy with different position 创建使用不同位置的副本
      Parameters:
      newPosition - the new position | 新位置
      Returns:
      new watermark | 新水印
    • withOpacity

      public TextWatermark withOpacity(float newOpacity)
      Create copy with different opacity 创建使用不同透明度的副本
      Parameters:
      newOpacity - the new opacity | 新透明度
      Returns:
      new watermark | 新水印
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • text

      public String text()
      Returns the value of the text record component.
      Returns:
      the value of the text record component
    • position

      public Position position()
      Returns the value of the position record component.
      Specified by:
      position in interface Watermark
      Returns:
      the value of the position record component
    • font

      public Font font()
      Returns the value of the font record component.
      Returns:
      the value of the font record component
    • color

      public Color color()
      Returns the value of the color record component.
      Returns:
      the value of the color record component
    • opacity

      public float opacity()
      Returns the value of the opacity record component.
      Specified by:
      opacity in interface Watermark
      Returns:
      the value of the opacity record component
    • margin

      public int margin()
      Returns the value of the margin record component.
      Specified by:
      margin in interface Watermark
      Returns:
      the value of the margin record component