วันจันทร์ที่ 14 กุมภาพันธ์ พ.ศ. 2554

การฝังลายน้ำลงในไฟล์ภาพขนาดใหญ่

การฝังลายน้ำ (watermark) ลงในเนื้อภาพเพื่อวัตถุประสงค์ต่างๆ เช่นการแสดงสิทธิการใช้งาน การให้ข้อมูลข่าวสารที่แน่ใจว่าผู้ใช้งานภาพจะต้องอ่านเป็นต้น หากภาพเล็กก็สามารถใช้ซอฟต์แวร์ image editor เปิดภาพแล้วพิมพ์ข้อความลงไปแล้วสั่งจัดเก็บ แต่หากเป็นภาพขนาดใหญ่เช่น ภาพจากกล้องถ่ายภาพทางอากาศ ภาพจากดาวเทียมสำรวจทรัพยากร เราสามารถใช้ชุดซอฟต์แวร์ฟรี เช่น FWTool/GDAL/OGR และ ImageMagick(convert,composite) ทำไดัดังตัวอย่างนี้

ตัวอย่างข้างต้นทำได้โดยใช้ Batch File ต่อไปนี้
=================================================
@echo on
::
:: to pre-process RTSD-DMC
:: D:\GeoData\Chula-DMC>gdalenhance -ot Byte -equalize test_dmc.tif dmc_0682.tif
::
SET "DMC_IMAGE_NAME=dmc_0682"
::SET "DMC_IMAGE_NAME=dmc_0683"
::SET "DMC_IMAGE_NAME=dmc_0684"
SET "DMC_EXT=.tif"
SET "DMC_LIC_SUFFIX=_SV_LIC.tif"
::
::SET DEBUG=True
SET DEBUG=False
if "%DEBUG%" == "false" (
SET "DMC_IMAGE=dmc_small.tif"
SET "IMAGE_SIZE=768x1382"
SET "DMC_LIC_IMG=dmc_small_SV_LIC.tif"
) ELSE (
SET "DMC_IMAGE=%DMC_IMAGE_NAME%%DMC_EXT%"
SET "IMAGE_SIZE=7680x13824"
SET "DMC_LIC_IMG=%DMC_IMAGE_NAME%%DMC_LIC_SUFFIX%"
)
echo License-embedded Image named %DMC_LIC_IMG%
::
::
SET IM_CONVERT=d:\Programs\ImageMagick-6.6.5-10\convert.exe
SET IM_COMPOSITE=d:\Programs\ImageMagick-6.6.5-10\composite.exe
SET LICENSE_IMAGE=license.tif
::
::
echo Starting processing at:
time /T
::
%IM_CONVERT% -font C:\Windows\Fonts\angsa.ttf -size %IMAGE_SIZE% -gravity center label:@license_dmc_utf8.txt %LICENSE_IMAGE%
::openev %LICENSE_IMAGE%
::
%IM_COMPOSITE% -dissolve 50 -gravity center %LICENSE_IMAGE% %DMC_IMAGE% %DMC_LIC_IMG%
::openev %DMC_LIC_IMG%
::
ECHO End of processing at
time /T
::
===================================================
สำหรับข้อความที่จะฝังลงไป โดยเฉพาะหากเป็นภาษาไทย อาจจัดเก็บไว้ใน
text file ก่อน โดย encoding ต้องเป็น UTF-8 จึงจะใช้ได้ ใน
ตัวอย่างข้างต้น ผู้เขียนจัดเตรียมข้อความที่ยืดยาวไว้ในไฟล์ชื่อ license_dmc_utf8.txt

ไม่มีความคิดเห็น: