方式一:原始图像和水印图像相加
- 子函数:AddWaterMaker
* 获取图像尺寸
get_image_size (Image, Width, Height)
* 打开一个不可见的图像窗口
open_window (0, 0, Width, Height, 0, 'buffer', '', WindowHandle)
* 设置窗口的字体
set_font (WindowHandle, 'Courier New-Bold-' + WaterMakerSize)
* 设置字符串的位置
set_tposition (WindowHandle, WaterMakerRow, WaterMakerColumn)
* 写字符串
write_string(WindowHandle, WaterMakerString)
* 截取窗口
dump_window_image (ImageDump, WindowHandle)
* 访问第一通道
access_channel (ImageDump, ImageOne, 1)
* 图像增加
add_image (Image, ImageOne, ImageResult, 1, 0)
return ()
- 测试:
read_image (Image, 'printer_chip/printer_chip_01')
AddWaterMaker (Image, ImageResult, 'WaterMaker', 100, 100, 100)
dev_display (ImageResult)
- 结果:
方式二:在原始图像上绘制
- 子函数:AddWaterMaker
* 获取图像尺寸
get_image_size (Image, Width, Height)
* 打开一个不可见的图像窗口
open_window (0, 0, Width, Height, 0, 'buffer', '', WindowHandle)
* 设置窗口的字体
set_font (WindowHandle, 'Courier New-Bold-' + WaterMakerSize)
* 设置字符串的位置
set_tposition (WindowHandle, WaterMakerRow, WaterMakerColumn)
* 写字符串
write_string(WindowHandle, WaterMakerString)
* 截取窗口
dump_window_image (ImageDump, WindowHandle)
* 访问第一通道
access_channel (ImageDump, ImageOne, 1)
* 二值化提取字符串区域
threshold (ImageOne, Region, 128, 255)
* 在原始图像上绘制区域
paint_region (Region, Image, ImageResult, 255, 'fill')
return ()
- 测试:
read_image (Image, 'printer_chip/printer_chip_01')
AddWaterMaker (Image, ImageResult, 'WaterMaker2', 100, 300, 200)
dev_display (ImageResult)
- 结果: