Refile是一个Ruby库,用于简化文件上传和处理的过程。要在图片上添加水印,你可以使用Refile的图像处理功能,结合RMagick或MiniMagick这样的图像处理库来实现。以下是使用Refile和MiniMagick添加水印的基本步骤:
bundle install
。config/initializers/refile.rb
中配置图像处理器:config/initializers/refile.rb
中配置图像处理器:以下是一个完整的示例,展示了如何在Rails应用中使用Refile和MiniMagick添加水印:
# app/models/user.rb
class User < ApplicationRecord
attachment :avatar
before_post_process :add_watermark_to_avatar
private
def add_watermark_to_avatar
if avatar.present? && avatar_changed?
add_watermark(avatar, 'Copyright © 2023')
end
end
def add_watermark(image, watermark_text)
manipulate! do |img|
logo = MiniMagick::Image.open('path/to/watermark.png')
img = MiniMagick::Image.open(image.path)
img.composite(logo) do |c|
c.gravity 'southeast'
c.alpha 'set'
c.transparent 'white'
end
img.write(image.path)
end
end
end
确保替换'path/to/watermark.png'
为实际的水印图片路径,并根据需要调整水印的位置和样式。
通过这种方式,你可以在图片上传时自动添加水印,从而保护你的图片资源不被未经授权的使用。
领取专属 10元无门槛券
手把手带您无忧上云