Record Class ImageWatermark
java.lang.Object
java.lang.Record
cloud.opencode.base.image.watermark.ImageWatermark
- Record Components:
position- the position | 位置opacity- the opacity (0.0 to 1.0) | 透明度margin- the margin from edge | 边缘间距Security | 安全性:
- Thread-safe: Yes (immutable record) - 线程安全: 是(不可变记录)
- All Implemented Interfaces:
Watermark
public record ImageWatermark(Position position, float opacity, int margin)
extends Record
implements Watermark
Image Watermark
图片水印
Immutable record describing an image watermark configuration. The actual
watermark pixels are passed at apply-time as a Raster, keeping the
record lightweight and AWT-free.
描述图片水印配置的不可变 record。实际水印像素在调用
apply(Raster, Raster) 时以 Raster 形式传入,保持本 record 轻量
且不依赖 AWT。
Usage Examples | 使用示例:
// Simple watermark
ImageWatermark watermark = ImageWatermark.of();
// With position and opacity
ImageWatermark watermark = ImageWatermark.builder()
.position(Position.BOTTOM_RIGHT)
.opacity(0.5f)
.margin(20)
.build();
// Apply
Raster result = watermark.apply(srcRaster, logoRaster);
- Since:
- JDK 25, opencode-base-image V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classImage Watermark Builder 图片水印构建器 -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault margin | 默认边距static final floatDefault opacity | 默认透明度 -
Constructor Summary
ConstructorsConstructorDescriptionImageWatermark(Position position, float opacity, int margin) Compact constructor with validation 紧凑构造函数(带验证) -
Method Summary
Modifier and TypeMethodDescriptionapplyTiled(Raster raster, Raster watermarkRaster, int spacingX, int spacingY) static ImageWatermark.Builderbuilder()Create a builder 创建构建器static ImageWatermark.Builderbuilder(ImageWatermark watermark) Create a builder from existing watermark 从现有水印创建构建器final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.intmargin()Returns the value of themarginrecord component.static ImageWatermarkof()Create a default watermark configuration (BOTTOM_RIGHT, opacity=1.0, margin=10).static ImageWatermarkCreate watermark configuration with the given position.static ImageWatermarkCreate watermark configuration with position and opacity.floatopacity()Returns the value of theopacityrecord component.position()Returns the value of thepositionrecord component.final StringtoString()Returns a string representation of this record class.withMargin(int newMargin) Create copy with different margin 创建使用不同边距的副本withOpacity(float newOpacity) Create copy with different opacity 创建使用不同透明度的副本withPosition(Position newPosition) Create copy with different position 创建使用不同位置的副本
-
Field Details
-
DEFAULT_OPACITY
public static final float DEFAULT_OPACITYDefault opacity | 默认透明度- See Also:
-
DEFAULT_MARGIN
public static final int DEFAULT_MARGINDefault margin | 默认边距- See Also:
-
-
Constructor Details
-
ImageWatermark
Compact constructor with validation 紧凑构造函数(带验证)
-
-
Method Details
-
of
Create a default watermark configuration (BOTTOM_RIGHT, opacity=1.0, margin=10). 创建默认水印配置(BOTTOM_RIGHT,opacity=1.0,margin=10)。- Returns:
- the watermark | 水印
-
of
Create watermark configuration with the given position. 创建带指定位置的水印配置。- Parameters:
position- the position | 位置- Returns:
- the watermark | 水印
-
of
Create watermark configuration with position and opacity. 创建带位置和透明度的水印配置。- Parameters:
position- the position | 位置opacity- the opacity | 透明度- Returns:
- the watermark | 水印
-
withPosition
Create copy with different position 创建使用不同位置的副本- Parameters:
newPosition- the new position | 新位置- Returns:
- new watermark | 新水印
-
withOpacity
Create copy with different opacity 创建使用不同透明度的副本- Parameters:
newOpacity- the new opacity | 新透明度- Returns:
- new watermark | 新水印
-
withMargin
Create copy with different margin 创建使用不同边距的副本- Parameters:
newMargin- the new margin | 新边距- Returns:
- new watermark | 新水印
-
builder
-
builder
Create a builder from existing watermark 从现有水印创建构建器- Parameters:
watermark- the existing watermark | 现有水印- Returns:
- the builder | 构建器
-
apply
Apply this watermark on aRasterusing aRaster-based watermark image (pure-Java alpha blending, no AWT). 使用Raster形式的水印图在Raster上应用本水印(纯 Java alpha 混合,不使用 AWT)。- Parameters:
raster- target raster | 目标 rasterwatermarkRaster- watermark raster (e.g.RGBA_8) | 水印 raster- Returns:
- watermarked
RGBA_8raster | 加水印的RGBA_8raster - Throws:
NullPointerException- if any argument is null | 任意参数为 null 时抛出- Since:
- opencode-base-image V1.0.4
-
applyTiled
- Parameters:
raster- target raster | 目标 rasterwatermarkRaster- watermark raster | 水印 rasterspacingX- horizontal spacing | 水平间距spacingY- vertical spacing | 垂直间距- Returns:
- tiled-watermarked
RGBA_8raster | 平铺水印后的RGBA_8raster - Throws:
NullPointerException- if any argument is null | 任意参数为 null 时抛出- Since:
- opencode-base-image V1.0.4
-
toString
-
hashCode
-
equals
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 withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
position
-
opacity
-
margin
-