- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们正在尝试通过我们的应用构建自定义社交分享图像。后端使用 Ruby/Sinatra 构建,我们已经使用 MiniMagick+AWS-SDK 上传用户图片。
我们想要做的是获取用户图像并在用户图像之上添加一个库存叠加层(它包含一个白色圆圈作为可变用户图像的占位符)。我尝试使用 MiniMagick 的内置 composite
方法,使用 Over
作为运算符,但是 Over
的问题是,如果叠加层大于源,它会根据源的大小自动调整。我们的叠加层更大,我们想要保留该叠加层,以便生成的图像与用户图像的一部分完全叠加,该部分适合下方可见的占位符白色圆圈。
我试过了 How to use Imagick to merge and mask images?但它不能解决我的问题。
基本上,假设这是叠加层。
并以此示例用户图片为例:
https://s-media-cache-ak0.pinimg.com/564x/71/08/b5/7108b5a89ce3d6cc0341f876681f8546.jpg
我希望生成的图像是完整的叠加层,用户图像在其中一个白色圆圈后面可见。
更新
根据 Mark's答案,我写了下面的Ruby代码来实现这个结果:
avatar = avatar.resize "200x200"
result = mask.composite(avatar) do |c|
c.compose "DstOver"
c.geometry "+100+120" #this could be different depending on your mask's dimensions
end
可以通过执行result.write "result.jpg"
来测试结果
最佳答案
不太确定您在做什么,因为您的蒙版是不透明的 JPEG?但是,我认为您的意思是对带有孔的蒙版使用透明的 PNG,在这种情况下您可以这样做:
convert mask.png \( avatar.jpg -resize 200x200 \) -geometry +360+150 -compose dst-over -composite result.jpg
关于ruby - MiniMagick:如何添加比源大的叠加库存图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450852/
一直在研究但未能查明问题:我正在关注 Railscasts PRO #182 使用 JCrop、Carrierwave 和 Minimagick 裁剪图像。当我开始重新创建图像版本时,提示错误: Ca
我已经使用 resize_to_fill 缩小到 [1,1] 大小,从而将图像减少到一个像素,包含基本上整个图像的平均颜色(当然,前提是图像的高度和宽度之间没有巨大的差异) . 现在我试图以十六进制格
给定: 纹理 和一张照片(无透明背景) 如何给照片赋予纹理? 具体来说,我需要以下步骤: 平铺纹理。来自 here ,我有:convert -size 1056x576 tile:Castillo_0
我按照 github 官方页面的说明安装 Redactor-rails ruby gem SammyLin/redactor-rails ,一切都好,但是当我尝试上传图像时,出现如下错误: 于 2
我们正在尝试通过我们的应用构建自定义社交分享图像。后端使用 Ruby/Sinatra 构建,我们已经使用 MiniMagick+AWS-SDK 上传用户图片。 我们想要做的是获取用户图像并在用户图像之
我正在尝试使用 MiniMagick 调整图像大小,并且在我的 Controller 文件中执行了以下操作: require 'rubygems' require 'mini_magick' 和 im
我使用 mini_magick 作为使用 ImageMagick 来操作一些图像的接口(interface)。 调整大小工作正常 .但是当我想裁剪一些图像时: img = MiniMagick::Im
假设我有这样一张图片:http://shop2.vans.com/wcsstore/Vans/images/products/NKA8MOD1B.JPG 我该怎么做才能裁剪图像,以便摆脱背景。所以,在
我正在尝试通过以下方式使用 Minimagick 创建图像: collage = MiniMagick::Image.create "jpg", false do |c| c.size "10
有没有办法操纵像素并创建或修改操纵图像以反射(reflect)对像素所做的更改? Minimagick 只提供了一个get_pixels 方法。 我应该将数组转换为字符串并使用 import_pixe
我遇到了 MiniMagick 的问题 这是我想要的描述。 我正在使用以下 gem 来创建 QR 码。 gem 'rqrcode-rails3' 因为那个 gem 以 SVG 格式响应我的 QR
我运行的是 windows xp,并且安装了 MiniMagick 和 ImageMagick(最新版本)。我现在正在使用控制台测试一切是否正常。使用 ms 命令提示符 image magick 没有
我正在尝试在图像上写一个字符串。目前我正在使用 MiniMagick,我可以调整大小和重叠两个图像,但是当我尝试使用标题编写多行字符串时,最终图像没有任何变化,它仍然和以前一样。 这是我当前的代码:
我想根据图像是横向还是纵向以不同方式处理图像。 这是我的图片 uploader 模型中的代码: def is_landscape? if @file image = ::MiniM
我一直在到处寻找,没有结果。 所以我使用 Active Storage 来处理我的模型图像。 我的产品型号如下: class Product < ApplicationRecord has_one
有人知道如何使用 Carrierwave + MiniMagick 将动画 GIF 压缩到第一帧吗? 最佳答案 我认为 MiniMagick 有一些变化,因为我只花了三个小时试图找出为什么 Andre
使用以下设置在 Ubuntu 16.04 上运行: Ruby 2.2.4、Nginx + 乘客、ImageMagick 7.x 问题:我正在使用 Shrine 和 Minimagick。一切都在开发中
我想要做的是通过 IMGKit 保存带有全尺寸快照的网站 url。在其中一个 View 中,我还想拥有快照的缩略图版本。我正在使用carrierwave以便将快照与MiniMagick的对象相关联来操
我的要求是如果正在上传 pdf 文件,则将 pdf 转换为图像。到目前为止,这就是我所做的。 class ImageUploader [800, 600] end version :thum
我有 Image 模型和 Movie 模型,Movie 可以有很多 images。我正在存储图像的 3 个版本,大、中和小。在我的应用程序中,用户可以选择特定尺寸的图像,比如 4 张“中等”尺寸的图像
我是一名优秀的程序员,十分优秀!