`
jsntghf
  • 浏览: 2533497 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

给你的图片加上水印

阅读更多

在此,描述三种比较简单的水印效果。更多效果,请参考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

效果图如下

2
1
分享到:
评论
1 楼 机器人 2009-11-03  
高海锋不错嘛。

相关推荐

    java给图片添加水印

    在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...

    C# 图片添加水印(图片或者文字)

    在C#编程中,添加水印到图片是一项常见的任务,特别是在设计软件或处理图像的应用程序中。本示例主要关注如何使用C#和WPF(Windows Presentation Foundation)技术来实现这个功能,既可以添加图片水印,也可以添加...

    C# 给图片加上文字或图片水印

    C# 给图片加上文字或图片水印,通过使用GDI+ 给图片上加水印。实现了透明文字与透明图片水印。可设置水印位置。

    springboot实现上传图片添加水印

    在Spring Boot框架中实现图片上传并添加水印的功能,是一个常见的需求,特别是在开发涉及多媒体内容的Web应用时。下面将详细介绍这个过程,并涵盖相关的技术点。 首先,我们需要了解Spring Boot如何处理文件上传。...

    基于matlab给图片增加水印

    在图像处理领域,给图片添加水印是一种常见的需求,它能保护版权,防止未经授权的使用。MATLAB作为一款强大的数值计算和数据可视化软件,也提供了丰富的图像处理工具箱,使得在MATLAB中实现图片加水印变得相对简单。...

    给图片添加水印

    在IT行业中,为图片添加水印是一项常见的任务,特别是在网页设计、社交媒体管理和版权保护等领域。在本项目中,我们将探讨如何使用JavaScript实现这一功能。这个项目适用于VS2010开发环境,它允许用户在上传图片之前...

    java 图片添加水印

    java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字

    基于Java给图片添加文字或图片水印

    总之,通过Java进行图像处理,尤其是添加水印,需要理解图像的基本概念,熟练运用`BufferedImage`和`Graphics2D`,并掌握相关的绘图技巧。这个项目对于学习Java编程和图像处理技术的学生来说,无疑是一次宝贵的实践...

    给word加入水印图片盖章

    总的来说,给Word文档添加水印和图片盖章是一项实用的功能,通过上述步骤,你可以轻松地为你的文档增添专业性和保护性。记住,调整水印和图片的透明度和位置至关重要,以确保它们不会干扰到正文的阅读。同时,保持...

    Java为图片添加水印功能.rar

    Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...

    jQuery图片自动添加水印插件.zip

    **jQuery图片自动添加水印插件详解** 在网页设计中,保护原创图片免受盗用是常见的需求,而实现这一目标的一种方法就是为图片添加水印。"jQuery图片自动添加水印插件"是一个非常实用的工具,它允许开发者轻松地在...

    JAVA实现给图片增加图片水印或者文字水印-依赖包

    在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是视觉美化。水印可以是图片形式,也可以是文字形式。本教程将详细讲解如何使用Java来实现这一功能,重点在于介绍所需的依赖包。 首先,我们...

    PHP为原图片添加水印图片

    使用PHP,为图片添加水印图片。 缩放源水印图片,使其最大宽/高度不能超过原图片。

    swift-ZZImageAddWatermark图片添加文字水印图片水印自定义二维码生成水印

    总的来说,ZZImageAddWatermark是一个强大的Swift库,它简化了在图片上添加水印和生成二维码的过程。通过这个库,开发者可以轻松地在iOS应用中实现这些功能,提升用户体验。如果你在项目中需要对图片进行处理,那么...

    winform 图片加水印文字和水印图片

    在.NET框架下,WinForm应用程序可以用来实现一系列的图像处理功能,包括添加水印文字和水印图片。这里,我们主要关注如何在图片上添加这两种类型的水印,以及如何进行等比例缩放和图片压缩。 首先,让我们了解什么...

    delphi实现给图片加水印2用ImageEn控件

    ### Delphi 实现给图片添加水印:使用 ImageEn 控件 #### 背景介绍 在 Delphi 开发环境中,实现对图像处理的需求时,经常会遇到需要为图片添加水印的情况。添加水印不仅可以保护图片版权,还能提高品牌识别度。本文...

    java+给图片添加水印

    在Java中给图片添加水印是一种常见的保护图片的方法,特别是在需要防止图片被盗用或者滥用的情况下。为了实现这一功能,Java提供了多种方式,其中常用的是使用ImageIO和Apache的Commons Imaging库。 ImageIO是Java...

    给页面图片添加水印代码

    标题“给页面图片添加水印代码”和描述中的内容提到了这一实用技巧,让我们深入探讨如何实现这个功能。 首先,我们需要了解水印的种类。静态水印通常是指在图片编辑软件中预先添加的,固定位置和大小的标记;而动态...

    给图片添加图片水印

    在IT行业中,为图片添加水印是一项常见的任务,主要用于保护版权、标识品牌或者增强视觉效果。这个主题将围绕“给图片添加图片水印”展开,介绍相关知识点。 首先,我们需要理解水印的概念。水印是一种半透明或...

Global site tag (gtag.js) - Google Analytics