水印是常见的图像绘制请求。最初,水印是纸张中用于识别纸张来源的微弱印记。今天的文字水印使用则不同,它们是在图像上添加的,以防止复制和重复使用,或者用于特定的标志或来源标记材料。
清单3-5展示了如何创建简单文本水印,如图3-5所示,水印只不过是绘制图像,然后在该图像上绘制别的东西 - 字符串,标志或符号,然后检索生成新版本图像。
图3-5文本水印将图像与字,标志或符号重叠。Public domain images courtesy of the National Park Service。
清单3-5中的示例在图像源对角线上绘制字符串(“watermark”)。它通过将上下文旋转45度来实现,使用混合模式高亮水印,同时保留原始照片的详细信息。因为此列表特定于iOS 7,所以在绘制字符串时必须包含文本颜色以及字体属性。如果你没有,字符串将不可见,你会像我在更新这个例子时一样抓耳挠头。
其他常见的方法是使用具有中等alpha水平(半透明)的漫反射白色覆盖,并且仅将标志的阴影(不绘制标志本身)绘制到图像的某部分上。路径剪切有助于后一种方法实现,它在第5章中有更详细的讨论。
每个水印方法以不同的方式改变原始图像。随着图像数据的改变或遮挡,去除水印变得更加困难。
清单3-5对图像添加水印
1 | UIGraphicsBeginImageContextWithOptions(targetSize, NO, 0.0); |
本文翻译自《iOS Drawing Practical UIKit Solutions》作者:Erica Sadun,翻译:Cheng Dong。如果觉得本书不错请购买支持正版:亚马逊购买传送门,本书所有源代码可在GitHub上下载。译者虽然力求做到信,达,雅,但是由于时间仓促加之译者水平十分有限,文中难免会出现不正确,不准确,词不达意,难于理解的地方,还望各位批评指正,共同进步,谢谢。转载请注明出处。