在此,描述三种比较简单的水印效果。更多效果,请参考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给图片添加水印,网站开发过程中可能需要对上传的图片添加属于本网站的水印,这是一个工具类,能实现添加文字水印和添加图片水印。
C# 给图片加上文字或图片水印,通过使用GDI+ 给图片上加水印。实现了透明文字与透明图片水印。可设置水印位置。
springboot实现上传图片添加水印
java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字
Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...
1、在网上查看了很多 资料,一般合成图片的方法,有两种;这种要简单、灵活些; 2、做成一哥demo,供学习参考;
基于Java给图片添加文字或图片水印 大学生课程设计 基于Java的课程设计 自己大二写的课程设计
运行环境:vs2010 利用js实现图片上传预览 实现对图片添加图片水印和文字水印
基于matlab给图片增加水印
JSP过滤器方式实现无损坏给图片添加水印
JS用层实现为图片添加水印效果JS用层实现为图片添加水印效果JS用层实现为图片添加水印效果JS用层实现为图片添加水印效果JS用层实现为图片添加水印效果JS用层实现为图片添加水印效果JS用层实现为图片添加水印效果JS用...
使用PHP,为图片添加水印图片。 缩放源水印图片,使其最大宽/高度不能超过原图片。
JAVA实现给图片增加图片水印或者文字水印相关依赖包。
包括了C#给图片添加水印需要用到的类库,以及详细的代码
在Java中给图片添加水印是一种常见的保护图片的方法,特别是在需要防止图片被盗用或者滥用的情况下。为了实现这一功能,Java提供了多种方式,其中常用的是使用ImageIO和Apache的Commons Imaging库。 ImageIO是Java...
jQuery图片自动添加水印插件是一款可以为图片添加自定义水印的jquery插件。
而不说出来源,这非常侵犯作者的版权,所以为了保护作品通常都会在作品上添加水印,使用在视频,图片,艺术画等作品上面,但是水印又非常影响美观,使用隐形的水印就可以解决这个问题了,这款水印软件就可以帮助用户...
图片添加水印工具 图片添加水印工具