Carrierwave为处理后的图像添加水印

2023-11-27

我尝试使用从多个资源获得的以下代码向处理后的图像添加水印:

def watermark
  manipulate! do |img|
    logo = Magick::Image.read("#{Rails.root}/assets/images/watermarks/watermark.png").first
    img = img.composite(logo, Magick::SouthEastGravity, Magick::OverCompositeOp)
  end
end

唯一的问题是,你猜对了,行不通。 我在日志/控制台中没有收到任何错误

这是我上传并调用的方法,如下所示:

def function
  version :thumb do
    process :resize_to_fill => [96, 96]
    process :watermark
  end
end

有什么想法可以获取一些日志来了解为什么这不起作用吗?我在我的系统(OSX)上安装了 Rmagick gems 和 Imagemagick 并且调整图像大小确实可以正常工作。


我只是这样做,效果非常好:

# Process files as they are uploaded:
process :resize_to_fill => [850, 315]
process :convert => 'png'
process :watermark

def watermark
  manipulate! do |img|
    logo = Magick::Image.read("#{Rails.root}/app/assets/images/watermark.png").first
    img = img.composite(logo, Magick::NorthWestGravity, 15, 0, Magick::OverCompositeOp)
  end
end

B.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Carrierwave为处理后的图像添加水印 的相关文章

随机推荐

  • 如何在 pandas groupby 中聚合多列

    我使用以下输入创建了一个 pandas 数据框 mn keyA state n1 n2 d1 d2 key1 CA 100 1000 1 2 key2 FL 200 2000 2 4 key1 CA 300 3000 3 6 key1 AL
  • R重命名函数中传递的列

    我一直在寻找这个并发现这个链接有助于重命名函数中传递的列 column name 实际制作的代码my function1在我寻找了一段时间后工作 有没有办法使用管道运算符来重命名函数内数据框中的列 我的尝试显示在my function2但它
  • Ubuntu 上的 ASP.Net Core 应用程序服务仅侦听端口 5000

    我正在尝试在 Ubuntu 服务器上托管 ASP Net Core MVC 应用程序 启用了 https 重定向 使用 Nginx 作为反向代理 我已使用 OpenSSL 创建并安装了本地 SSL 证书 当我使用 dotnet CLI 运行
  • 为什么 Web 部署代理服务监听端口 80 和 8172

    在四个 Win Server 2008 R2 机器上 我们安装了 MS Deploy 它侦听端口 80 和 8172 这使人们对网络上有关在 IIS 7 上运行时无需更改端口 80 默认值的所有其他材料产生疑问 我无法理解 为什么它使用两个
  • std::move 如何将表达式转换为右值?

    我不完全理解的实现std move 也就是说 我对 MSVC 标准库中的这种实现感到困惑 template
  • 使用 php 在文本文件中搜索短语/单词

    我如何扫描目录中的特定文本行并使用 php 列出所有匹配的文件 Thanks 几天前我实际上为此编写了一个函数 这是扫描每个文件的基本函数 foreach glob
  • Haskell 中无限列表的笛卡尔积

    我有一个有限列表的函数 gt kart a gt b gt a b gt kart xs ys x y x lt xs y lt ys 但如何实现它infinite清单 我听说过一些关于康托尔和集合论的事情 我还发现了一个类似的功能 gt
  • 如何优化此 Python 代码(来自 ThinkPython,练习 10.10)

    我正在通过艾伦唐尼工作如何像计算机科学家一样思考 并且我已经为练习 10 10 编写了我认为功能正确的解决方案 但运行只花了 10 多个小时 所以我想知道我是否错过了一些非常明显且有用的优化 这是练习 如果从每个单词中交替取字母形成一个新单
  • 从 iframe 外部调用 javascript 函数

    我在 iframe 中有一个完整的 html 打开 其中包含 javascript 函数 getData 现在我不确定如何从该框架外部调用 getData 是否可以从外部 javascript 文件调用它 您可以从 window frame
  • 向公众公开 Firebase apiKey 是否安全?

    The Firebase Web 应用程序指南状态我应该把给定的apiKey在我的 Html 中初始化 Firebase TODO Replace with your project s customized code snippet
  • jquery 重新排序 div

    我有 3 个 div 想要反转文档准备好的顺序 div First div div Second div div Third div 我怎样才能在 jquery 中做到这一点 div div First div div Second div
  • 将十六进制字符串转换为 IP 地址

    我想将字符串值 十六进制 转换为 IP 地址 我该如何使用 Java 来做到这一点 十六进制值 0A064156 IP 10 6 65 86 This site给了我正确的结果 但我不确定如何在我的代码中实现它 可以直接在 XSLT 中完成
  • 将元组添加到集合中不起作用

    scala gt val set scala collection mutable Set Int Int set scala collection mutable Set Int Int Set scala gt set 3 4
  • C# 遍历类属性

    我目前正在设置类对象的所有值Record 这是我目前用来逐个属性填充记录的代码 Loop through each field in the result set for int i 0 i lt resultItems Length i
  • PHP:如何清理上传的文件名?

    我有一个 PHP 应用程序 我允许用户将文件上传到我的网络应用程序 Question 对我来说清理上传文档的文件名的最佳方法是什么 FILES filename tmp name in PHP UPDATE 我可以获取上传文件名的 MD5
  • 在MySQL中实现大量数据快速插入的最佳方法是什么?

    我用 C 编写了一个程序来解析大型 XML 文件 然后使用插入语句创建文件 其他一些进程会将文件摄取到 MySQL 数据库中 这些数据将作为索引服务 以便用户可以轻松查找文档 我选择InnoDB是因为它具有行级锁定的能力 C 程序将在给定调
  • Python:抑制进入命令行的错误?

    当我尝试从命令行执行 python 程序时 出现以下错误 这些错误不会对我的输出造成任何问题 我不希望它显示在命令行中 Traceback most recent call last File test py line 88 in
  • 在两个数组上进行 ng-repeat

    我想对由两个数组组成的数组执行 ng repeat 如下所示 titles links 我的数组 标题和链接 具有相同的长度 最后 我想在 ng repeat 中打印类似的内容 array title array link 例如 在 C 程
  • Jenkins 和 NodeJS 插件 - 权限被拒绝错误 = 13

    我正在运行最新版本Jenkins v 1 563 and Node 0 10 28 我有一个构建良好的 Java 项目 当我将预构建步骤添加为节点脚本时 选中提供节点和 npm bin 文件夹到 PATH 尽管我已向所有内容 节点 tomc
  • Carrierwave为处理后的图像添加水印

    我尝试使用从多个资源获得的以下代码向处理后的图像添加水印 def watermark manipulate do img logo Magick Image read Rails root assets images watermarks