在此,描述三种比较简单的水印效果。更多效果,请参考RMagick的API http://www.imagemagick.org/RMagick/doc/image3.html
效果一:给图片加上中文水印以及浮雕效果
def index
img = Magick::Image.read("#{File.expand_path(RAILS_ROOT)}/public/images/source.jpg").first #图片路径
text = "高海峰"
copyright = Magick::Draw.new
copyright.annotate(img, 0, 0, 8, 12, text) do #可以设置文字的位置,参数分别为路径、宽度、高度、横坐标、纵坐标
self.gravity = Magick::CenterGravity
#加上此句才能将中文印到图片上,可以在windows中的C:\WINDOWS\Fonts目录下找到字体文件SimSun.ttc
self.font = "#{File.expand_path(RAILS_ROOT)}/public/images/simsun.ttc"
self.font_weight = Magick::BoldWeight #粗体
self.pointsize = 14 #字体的大小
self.fill = '#FFF' #字体的颜色
self.gravity = Magick::SouthEastGravity
self.stroke = "none"
end
img = img.raise #浮雕效果
img.write("#{File.expand_path(RAILS_ROOT)}/public/images/target.jpg") #生成图片的路径
end
效果图如下
效果二:图片叠加以及中文水印和浮雕效果
require 'rubygems'
require 'RMagick'
def index
img = Magick::Image.read("#{File.expand_path(RAILS_ROOT)}/public/images/source.jpg").first
img2 = Magick::Image.read("#{File.expand_path(RAILS_ROOT)}/public/images/go.gif").first #版权图片
text = "高海峰"
img.composite!(img2, 10, 10, Magick::CopyCompositeOp) #图片叠加
#CopyCompositeOp是composite的算法之一。还有很多运算方法,实现各种效果,
#可以在官网找到 http://www.imagemagick.org/RMagick/doc/constants.html#CompositeOperator
copyright = Magick::Draw.new
copyright.annotate(img, 0, 0, 8, 12, text) do
self.gravity = Magick::CenterGravity
self.font = "#{File.expand_path(RAILS_ROOT)}/public/images/simsun.ttc"
self.pointsize = 14
self.font_weight = Magick::BoldWeight
self.fill = '#FFF'
self.gravity = Magick::SouthEastGravity
self.stroke = "none"
end
img = img.raise
img = img.watermark(img, 0.15, 0, Magick::EastGravity) #0.15是透明度 0是饱和度
img.write("#{File.expand_path(RAILS_ROOT)}/public/images/target.jpg")
end
效果图如下
效果三:图片翻转效果
require 'rubygems'
require 'RMagick'
def index
img = Magick::Image.read("#{File.expand_path(RAILS_ROOT)}/public/images/source.jpg").first
img2 = Magick::Image.read("#{File.expand_path(RAILS_ROOT)}/public/images/go.gif").first
text = "高海峰"
img.composite!(img2, 10, 10, Magick::CopyCompositeOp)
copyright = Magick::Draw.new
copyright.annotate(img, 0, 0, 8, 12, text) do
self.gravity = Magick::CenterGravity
self.font = "#{File.expand_path(RAILS_ROOT)}/public/images/simsun.ttc"
self.pointsize = 14
self.font_weight = Magick::BoldWeight
self.fill = '#FFF'
self.gravity = Magick::SouthEastGravity
self.stroke = "none"
end
img = img.raise
mark = img.rotate!(45) #可旋转
img.roll(img.columns/4, img.rows/4)
img = img.watermark(mark, 0.15, 0, Magick::EastGravity)
img.write("#{File.expand_path(RAILS_ROOT)}/public/images/target.jpg")
end
效果图如下
分享到:
相关推荐
在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...
在C#编程中,添加水印到图片是一项常见的任务,特别是在设计软件或处理图像的应用程序中。本示例主要关注如何使用C#和WPF(Windows Presentation Foundation)技术来实现这个功能,既可以添加图片水印,也可以添加...
C# 给图片加上文字或图片水印,通过使用GDI+ 给图片上加水印。实现了透明文字与透明图片水印。可设置水印位置。
在Spring Boot框架中实现图片上传并添加水印的功能,是一个常见的需求,特别是在开发涉及多媒体内容的Web应用时。下面将详细介绍这个过程,并涵盖相关的技术点。 首先,我们需要了解Spring Boot如何处理文件上传。...
在图像处理领域,给图片添加水印是一种常见的需求,它能保护版权,防止未经授权的使用。MATLAB作为一款强大的数值计算和数据可视化软件,也提供了丰富的图像处理工具箱,使得在MATLAB中实现图片加水印变得相对简单。...
在IT行业中,为图片添加水印是一项常见的任务,特别是在网页设计、社交媒体管理和版权保护等领域。在本项目中,我们将探讨如何使用JavaScript实现这一功能。这个项目适用于VS2010开发环境,它允许用户在上传图片之前...
java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字
总之,通过Java进行图像处理,尤其是添加水印,需要理解图像的基本概念,熟练运用`BufferedImage`和`Graphics2D`,并掌握相关的绘图技巧。这个项目对于学习Java编程和图像处理技术的学生来说,无疑是一次宝贵的实践...
总的来说,给Word文档添加水印和图片盖章是一项实用的功能,通过上述步骤,你可以轻松地为你的文档增添专业性和保护性。记住,调整水印和图片的透明度和位置至关重要,以确保它们不会干扰到正文的阅读。同时,保持...
Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...
**jQuery图片自动添加水印插件详解** 在网页设计中,保护原创图片免受盗用是常见的需求,而实现这一目标的一种方法就是为图片添加水印。"jQuery图片自动添加水印插件"是一个非常实用的工具,它允许开发者轻松地在...
在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是视觉美化。水印可以是图片形式,也可以是文字形式。本教程将详细讲解如何使用Java来实现这一功能,重点在于介绍所需的依赖包。 首先,我们...
使用PHP,为图片添加水印图片。 缩放源水印图片,使其最大宽/高度不能超过原图片。
总的来说,ZZImageAddWatermark是一个强大的Swift库,它简化了在图片上添加水印和生成二维码的过程。通过这个库,开发者可以轻松地在iOS应用中实现这些功能,提升用户体验。如果你在项目中需要对图片进行处理,那么...
在.NET框架下,WinForm应用程序可以用来实现一系列的图像处理功能,包括添加水印文字和水印图片。这里,我们主要关注如何在图片上添加这两种类型的水印,以及如何进行等比例缩放和图片压缩。 首先,让我们了解什么...
### Delphi 实现给图片添加水印:使用 ImageEn 控件 #### 背景介绍 在 Delphi 开发环境中,实现对图像处理的需求时,经常会遇到需要为图片添加水印的情况。添加水印不仅可以保护图片版权,还能提高品牌识别度。本文...
在Java中给图片添加水印是一种常见的保护图片的方法,特别是在需要防止图片被盗用或者滥用的情况下。为了实现这一功能,Java提供了多种方式,其中常用的是使用ImageIO和Apache的Commons Imaging库。 ImageIO是Java...
标题“给页面图片添加水印代码”和描述中的内容提到了这一实用技巧,让我们深入探讨如何实现这个功能。 首先,我们需要了解水印的种类。静态水印通常是指在图片编辑软件中预先添加的,固定位置和大小的标记;而动态...
在IT行业中,为图片添加水印是一项常见的任务,主要用于保护版权、标识品牌或者增强视觉效果。这个主题将围绕“给图片添加图片水印”展开,介绍相关知识点。 首先,我们需要理解水印的概念。水印是一种半透明或...