用回形针圆角

2024-02-24

如何用回形针创建圆角?我找到了这个解决方案,它创建了使用convert_options用回形针实现圆角 http://loo.no/2009/08/09/rounded-corners-with-paperclip,但它不适用于 Rails 3 和 Paperclip 2.4.5。生成的转换命令仅在我使用时才有效ImageMagick Alpha 参数 http://www.imagemagick.org/Usage/thumbnails/#rounded而不是阈值参数:

  convert example.jpg \
     \( +clone  -alpha extract \
        -draw 'fill black polygon 0,0 0,15 15,0 fill white circle 15,15 15,0' \
        \( +clone -flip \) -compose Multiply -composite \
        \( +clone -flop \) -compose Multiply -composite \
     \) -alpha off -compose CopyOpacity -composite  rounded_corners.png

这对应于

has_attached_file :avatar,
                  :styles => { :medium => ["918x483#", :png] },
                  :convert_options => {:medium => Proc.new{self.convert_options}}

def self.convert_options(px = 15)
  trans = ""
  trans << " \\( +clone  -alpha extract "
  trans << "-draw 'fill black polygon 0,0 0,#{px} #{px},0 fill white circle #{px},#{px} #{px},0' "
  trans << "\\( +clone -flip \\) -compose Multiply -composite "
  trans << "\\( +clone -flop \\) -compose Multiply -composite "
  trans << "\\) +alpha off -compose CopyOpacity -composite "
end

此代码片段似乎生成了正确的转换命令,但给出了“处理 xyz 流的缩略图时出错".

Command :: convert '/tmp/stream20120109-15817-1lju7p6-0.jpg[0]' -resize "918x" 
  -crop "918x483+0+105" +repage \( +clone -alpha extract -draw 'fill black polygon 
  0,0 0,15 15,0 fill white circle 15,15 15,0' \( +clone -flip \) -compose 
  Multiply -composite \( +clone -flop \) -compose Multiply -composite \) +alpha off
  -compose CopyOpacity -composite '/tmp/stream20120109-15817-1lju7p6-....png'
[paperclip] An error was received while processing: #<Paperclip::PaperclipError: 
There was an error processing the thumbnail for stream20120109-15817-1lju7p6-0>

最后我发现,这是一个简单的错字。你必须使用-alpha off代替+alpha off,那么上面的代码就可以正常运行。有时,一个符号(-而不是+,反之亦然)就会产生影响。

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

用回形针圆角 的相关文章

随机推荐

  • Android 风格签名未按预期工作

    我需要使用特定的签名配置来签署产品风格 我在 stackoverflow 上找到了一些参考资料 例如this https stackoverflow com questions 30898611 gradle signing flavors
  • MAC从shell脚本写入桌面

    有没有办法从 BASH 脚本向 MAC 桌面显示消息 我正在编写一个终端窗口脚本 需要在 MAC 桌面上显示一条消息 另外 如果这是从 BASH 脚本打开消息框的一种方法 Dennis 像这样 bin bash osascript e Te
  • 使用 thrift json 序列化将对象转换为 JSON 字符串

    我是储蓄新手 我需要将我的数据对象转换为JSON string with Thrift JSON序列化 我用这种方式尝试过 TSerializer serializer new TSerializer new TSimpleJSONProt
  • jQuery 方法:.submit() 与 .trigger('submit') 之间的区别

    jQuery 允许通过以下任一方式以编程方式触发表单提交 js form class hook submit js form class hook trigger submit 注 我的理解是 trigger submit is to su
  • C# == 运算符详细做什么?

    在 C 中 当您在两个对象上使用 运算符进行比较时 后台到底发生了什么 它只是比较地址吗 或者是类似 Equals 或 CompareTo 的东西吗 PS java中的 运算符怎么样 它的行为相同吗 据我所知 它按值 相等 比较值类型 它通
  • Clojure:如何在运行时找出函数的数量?

    给定一个函数对象或名称 我如何确定它的数量 就像是 arity func name 我希望有办法 因为 arity 在 Clojure 中非常重要 函数的元数存储在变量的元数据中 arglists meta str x x ys 这要求该函
  • Lisp 中的函数名可以有别名吗?

    就像包裹一样 我使用Emacs 也许 它可以提供某种解决方案 例如 defun the very very long but good name 稍后在代码中没有用处 但名字就像Fn 15或者第一个字母缩写也没有用 是否可以使用类似于包的别
  • Java 静态方法上的线程锁

    根据我对 Java 类的了解 非静态同步方法 在特定对象上获取锁 静态同步方法 在类上获取锁 我对此有点困惑 因为我们可以通过类名或对象名调用静态方法 请假设我的类有 4 个方法都是同步的 2 个方法是静态的 2 个方法不是静态的 如果我创
  • Jquery 在 Href 上创建双击事件

    伙计们是否可以使用 jquery 为 a href 创建双击事件 双击锚点执行操作的问题是 页面将在第一次单击时重定向 从而阻止双击及时响应 如果您想 拦截 点击事件 以便双击事件有机会在页面重定向之前触发 那么您可能必须设置点击超时 如下
  • 如何在 Django 中获取用户 IP 地址?

    如何在 Django 中获取用户的 IP 我有这样的看法 Create your views from django contrib gis utils import GeoIP from django template import Re
  • 如何在 Aurelia 中“继承”可绑定属性?

    我正在使用 TypeScript 开发 Aurelia 应用程序 在此应用程序中 我定义了一组自定义元素 每个元素共享一组可绑定属性 这些属性被转换为 css 设置 如以下简化示例所示 import computedFrom bindabl
  • 在 Azure Linux VM 中,什么仍然存在?什么磁盘收费?

    我在 Microsoft 的 Azure 中创建了一个小型 Linux VM 我还创建了一个 20GB BLOB 并将其安装为文件系统 在我的虚拟机上 我看到以下内容 根文件系统 约28GB 启动文件系统 约500MB 我的 20GB 文件
  • iphone AVEditDemo 或任何视频处理示例

    我正在尝试以某种方式处理视频 剪切和合并视频 录制屏幕并从该录制内容中制作视频 我也在互联网和 stackoverflow 上查找 看到苹果有一个名为 AVEditDemo 的代码示例 但我永远找不到它 如果有人有这个例子并愿意与我分享 或
  • 微软 Roslyn 与 CodeDom

    From a 新闻稿 http www infoworld com d application development microsofts roslyn reinventing the compiler we know it 176671
  • Laravel 5.5 将迁移与生产数据库合并

    希望我能很好地解释这一点 我有一个 Laravel 应用程序 已经投入生产了一分钟 所以 我有一堆包含很多更改的迁移文件 我想合并这些迁移文件而不丢失数据库 我的方式think这会起作用 将所有生产表迁移到所需状态 将所有迁移文件合并为所需
  • 如何列出 mongo shell 中的所有数据库?

    我知道怎么做列出特定数据库中的所有集合 https stackoverflow com questions 8866041 how to list all collections in the mongo shell 但是如何在 Mongo
  • mysqld_safe UNIX 套接字文件的目录“/var/run/mysqld”不存在

    使用 mysqld safe 启动 mysql 服务器 5 7 17 时 出现以下错误 2017 02 10T17 05 44 870970Z mysqld safe Logging to var log mysql error log 2
  • 从 XMLHttpRequest 对象中删除 cookie

    我正在使用 jquery 进行 ajax 调用 例如 ajax url path to webservice asmx beforeSend function xmlHTTPRequest modify headers here remov
  • 分页计算算法

    我正在尝试计算分页 var pagination total result length per page itemsPerPage required current page currentPage required last page
  • 用回形针圆角

    如何用回形针创建圆角 我找到了这个解决方案 它创建了使用convert options用回形针实现圆角 http loo no 2009 08 09 rounded corners with paperclip 但它不适用于 Rails 3