PHP自定义图片水印类:文字与图片添加功能

0 下载量 185 浏览量 更新于2024-08-28 收藏 61KB PDF 举报
PHP水印类是一个自定义开发的工具,用于在图像上添加水印功能,支持丰富的特性,包括文字水印和图片水印的插入,以及透明度调整、自定义位置等。这个类的核心功能通过以下几个关键属性实现: 1. **水印类型** (`waterTypeImage` 和 `waterTypeStr`): 类支持两种类型的水印,可以通过 `$waterType` 属性设置,值为 0 表示文字水印,值为 1 表示图片水印。这使得开发者可以根据需求选择添加文字或图片作为水印。 2. **透明度控制** (`transparent`): 类提供了设置水印透明度的功能,通过 `$transparent` 属性设定范围在0-100,数值越大,水印越不透明。 3. **文字水印参数** (`waterStr`, `$fontSize`, `$fontColor`, `$fontFile`): 对于文字水印,开发者可以指定水印的文字内容 (`$waterStr`),字体大小 (`$fontSize`),颜色(用RGB数组 `$fontColor`),以及字体文件路径 (`$fontFile`)。 4. **图片水印** (`waterImg`): 类还允许用户设置一个图片作为水印,存储在 `$waterImg` 属性中。 5. **水印位置** (`pos`): 类提供了一个 `pos` 属性来设置水印相对于原始图像的位置,这有助于精确控制水印的放置。 6. **私有变量** (`srcImg`, `$im`, `$water_im`, `$srcImg_info`, `$waterImg_info`, `$str_w`, `$str_h`, `$x`, `$y`): 类内还有一些私有变量,用于存储和处理图像数据,如源图片、水印图片的信息,以及计算水印文字的尺寸等。 使用这个类时,首先需要实例化 `WaterMask` 类,并根据需要设置相关属性。例如,创建一个实例并设置文字水印参数: ```php $obj = new WaterMask('input.jpg'); $obj->waterType = 0; // 文字水印 $obj->transparent = 45; $obj->waterStr = 'icp.niufee.com'; $obj->fontSize = 18; $obj->fontColor = [255, 255, 255]; // 白色 $obj->fontFile = 'AHGBold.ttf'; ``` 然后调用 `output()` 方法将带有水印的图片输出到指定的文件或覆盖原始图片: ```php $obj->output('output_with_watermark.jpg'); ``` 这个PHP水印类提供了一种灵活的方式来定制图片水印,适用于各种应用场景,如网站版权保护、产品标识等。通过这个类,开发者能够快速且方便地为他们的图像资源添加专业级的水印效果。