有没有办法从代码中提取图像? (如果您不知道羽化是什么,请检查this - 我没有使用脏语)
我知道像Photoshop这样的专业设计应用程序可以做到这一点,但我希望用户将图像上传到我的网站,然后以羽毛的方式显示它们。 (现在有一个你每天都听不到的句子)
答案 0 :(得分:1)
Paperclip支持使用ImageMagick应用程序进行图像处理,该应用程序允许您以编程方式操作上载时的图像。请查看以下链接中标题为后期处理的小节
http://github.com/thoughtbot/paperclip
你必须熟悉ImageMagick的CLI来弄清楚你想要什么,但它绝对可行。
答案 1 :(得分:1)
我可以看到两种方式。在这两种方式中,您都可以准备透明的PNG图像,即“羽毛”效果。然后,您将此图像与原始图像组合,您将获得所需的结果。
在动态尺寸的情况下,解决方案会变得复杂一些 - 但基本原理是相同的。
在这种情况下,您可以在客户端进行操作。只需准备透明的PNG蒙版即可实现“羽毛”效果 - 使用Photoshop / Gimp创建它。
假设您将掩码命名为“feather.png”,原始图像名为“source.jpg”。然后您可以使用此HTML代码
<div style="width: 200px;height: 200px; background: url(/images/source.jpeg)">
<img width="200" height="200" src="/images/feather.png" />
</div>
在这种情况下,我肯定会使用paperclip gem。它使用了魔术imagemagick库。你可以把它想象成命令行上的Photoshop(有点夸张但不多)
在你的模特中:
class Avatar < ActiveRecord::Base
has_attached_file :image, :styles => {
:feather => {
:geometry => "200x200",
:format => :jpg
},
:normal => {
:geometry => "200x200",
:format => :jpg
}
},
:convert_options => {
:feather => "#{Rails.root.join('public/images/feather-200x200.png')} -composite"
}
end
就是这样。然后在您的代码中,当您想要使用“羽毛”图像时,您应该使用:
<%= image_tag avatar.image.url(:feather) %>
或者:正常的非羽毛版本。
所有转换和转换都只是作为一项任务完成:
avatar = Avatar.new
# from file...
avatar.image = open(....)
# or maybe from form...
avatar.image = params[:...]
# it not only saves the avatar to db but runs the image transformations
avatar.save!
答案 2 :(得分:0)
据我所知,rmagick是最好的:http://rmagick.rubyforge.org/portfolio2.html
...但最接近您正在搜索的内容是:
您还可以让用户上传他们的照片,然后使用一些CSS技巧(例如图片顶部的透明png)显示它的羽毛状物。
答案 3 :(得分:0)
免责声明:我在Atalasoft工作。
我们的免费成像SDK DotImage Photo可用于执行此操作。最简单的方法是在原始图像上使用叠加半透明图像。您可以在运行时创建它们,使其大小合适。