方式一:原始圖像和水印圖像相加
- 子函數: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)
- 結果: