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

rails3+ paperclip图片加水印

阅读更多
1. 新建项目,并移除index.html
 
  rails new paperclip-water
  rm public/index.html
 


2. 修改Gemfile 添加paperclip
  
 gem 'paperclip'


3. 新建asset
    r
ails g scaffold asset ttile:string


4. 添加paperclip支持
   
rails g paperclip asset data


5. 新建 lib/paperclip_processors/watermark.rb,源文件在:
    http://gist.github.com/raw/465088/3de6e4f50ff659b91ee094764af842968d4e0de3/watermark.rb

6. 修改asset.rb
 
require 'paperclip_processors/watermark'
class Asset < ActiveRecord::Base
  has_attached_file :data, :processors => [:watermark],
  :styles => {
    :original => {
      :geometry => '550x400>',
      :watermark_path => "#{Rails.root}/public/images/rails.png",#水印图片所在位置
      :position => 'Center' #添加的水印在图片哪个位置
    }
  }
end


7. 修改 _form.html.erb,添加文件上传支持,并修改 show.html.erb,显示图片
  
<%= form_for(@asset,:html => {:multipart => true}) do |f| %>

  #show.html.erb
   <p>
  <%= @asset.title %>
</p>
<p>
  <%=image_tag @asset.data.url() %>
</p>

   
8.  运行迁移文件
    
rake db:migrate


9.  修改routes.rb
   
      root :to => "assets#index"
      resources :assets
   


10. 启动项目 测试
   
    rails s
   


-------
继续打标记:
转载注明:javaeye--doabit..
----------------------------
7
1
分享到:
评论
11 楼 tiroc 2011-05-05  
我的问题解决了一部分,使用现面这个文件,其他的都按照你写的做就可以:
https://github.com/mpelos/nova_marine/blob/2dc882dac31532024d4edb196e4a632801738341/lib/paperclip_processors/watermark.rb
不过,又出现另外一个问题,就是:geometry => '550x400>'改成'550x400#'之后,composite命令就会失败。
10 楼 tiroc 2011-05-05  
doabit,你好!我完全按照这篇文章做下来,会出错:
wrong number of arguments (8 for 3)

出错位置:
lib/paperclip_processors/watermark.rb:56:in `make'

你的这个watermark.rb中,*params把数组拆开传递,我查看对应的方法源码Paperclip::CommandLine中是这样的:
def initialize (binary, params = "", options = {})

而如果我报watermark.rb56行的*去掉,会报watermark.rb61行的那个错误。
我的gem版本:
rails 3.0.3
paperclip 2.3.8
9 楼 doabit 2010-12-06  
wuyuntao 写道
请教一下 lz 的 paperclip 版本,我用的是 rails3 + paperclip 2.3.6 也会遇到 song.li 同样的问题

你好,我用的2.3.3的版本,
8 楼 wuyuntao 2010-11-26  
请教一下 lz 的 paperclip 版本,我用的是 rails3 + paperclip 2.3.6 也会遇到 song.li 同样的问题
7 楼 doabit 2010-11-13  
song.li 写道
rails 2.3.2环境

运行时提示watermark.rb 第56行 success = Paperclip.run(command, *params)
抛出wrong number of arguments (5 for 3)错误

你好,我只用 rails3.0做过,2.3的没试过
6 楼 song.li 2010-11-12  
rails 2.3.2环境

运行时提示watermark.rb 第56行 success = Paperclip.run(command, *params)
抛出wrong number of arguments (5 for 3)错误
5 楼 doabit 2010-10-09  
zcq100 写道
NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

这个问题终于搞定了,用script/plugin install安装paperclip就可以了,为什么用gem安装的老是提示方法找不到呢?我在文件里面用 require引用了的。


rails2的我也不太清楚,你可以去paperclip反应下,
4 楼 zcq100 2010-10-08  
NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

这个问题终于搞定了,用script/plugin install安装paperclip就可以了,为什么用gem安装的老是提示方法找不到呢?我在文件里面用 require引用了的。
3 楼 zcq100 2010-10-08  
doabit 写道
zcq100 写道
用了你做得哪个kindeditor插件,我现在用的环境是rails2.3.8,在用paperclip上传的时候提示NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

你好,我那个是rails3环境的,没有测试rails 2,不知道你安装的paperclip是哪个版本的

这几天头都搞大了,paperclip是直接gem install paperclip安装的,貌似它还依赖RMagic,但RMagic怎么都装不上去,编译源码的时候遇到一个问题google都没能解决。我的环境是OS X10.6。
2 楼 doabit 2010-10-06  
zcq100 写道
用了你做得哪个kindeditor插件,我现在用的环境是rails2.3.8,在用paperclip上传的时候提示NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

你好,我那个是rails3环境的,没有测试rails 2,不知道你安装的paperclip是哪个版本的
1 楼 zcq100 2010-10-06  
用了你做得哪个kindeditor插件,我现在用的环境是rails2.3.8,在用paperclip上传的时候提示NoMethodError (undefined method `has_attached_file' for #<Class:0x1036202b0>): :

相关推荐

Global site tag (gtag.js) - Google Analytics