小编Prz*_*icz的帖子

将ImageMagick中的多个图像与相对(非绝对)偏移组合在一起

我正在寻找在ImageMagick中将多个图像拼接在一起的最有效方法,在背景图像上,使得叠加图像之间的间距/填充是一致的?

我已经研究过使用+ append,convert -composite和转换-page和-layers合并.

以下命令(convert -composite)有效,但需要预先计算图像尺寸才能指定绝对偏移.真的,我希望FIRST分层图像的末端和第二层图像的开始之间有10像素的间隙,但我能看到的唯一方法是通过指定画布左上角的绝对偏移量.

convert \
  background.jpg \
  first.jpg -gravity Northwest -geometry  +10+10 -composite \
  second.jpg                   -geometry +300+10 -composite \
  third.jpg                    -geometry +590+10 -composite \
  output.jpg
Run Code Online (Sandbox Code Playgroud)

我正在寻找某种类型的运算符,以便可以相对于分层中的"最后"图像解释水平偏移,因此我可以以某种方式指定偏移,而不是指定+300+10第二个图像和+590+10第三个图像+10+10.

我认为引力可以让我实现那个(-gravity Northwest),就像float: left;在CSS定位中一样,但事实并非如此.

我在以下方面也取得了一些成功:

convert \
  -page  +10+10 first.jpg  \
  -page +300+10 second.jpg \
  -page +590+10 third.jpg  \
  -background transparent  \
  -layers merge \
   layered.png

convert background.jpg layered.png -gravity Center -composite output.jpg
Run Code Online (Sandbox Code Playgroud)

所描述的两种技术都需要预先计算绝对偏移,这有点痛苦.有一个更好的方法吗?

imagemagick imagemagick-convert

8
推荐指数
1
解决办法
1万
查看次数

将多个Thinking Sphinx查询的结果组合到一个分页结果中

有没有一种简单的方法可以将多个Thinking Sphinx搜索结果合并到一个结果中?所有这些搜索都在同一个模型上,但搜索具有不同的搜索字词.我要做的是组合结果,以便它们都可以按日期列进行排序并获得适当的分页.

假设我有一个Thinker类和一个Idea类.

class Thinker < ActiveRecord::Base
  has_many :ideas
end

class Idea < ActiveRecord::Base
  belongs_to :thinker

  define_index do
    indexes text
    has created_at
  end
end
Run Code Online (Sandbox Code Playgroud)

并说我有两个思想家,鲍勃和爱丽丝.我想结合以下搜索:

bob.ideas.search 'pancakes', :order => :created_at, :sort_mode => :desc
alice.ideas.search 'waffles', :order => :created_at, :sort_mode => :desc
Run Code Online (Sandbox Code Playgroud)

......并以某种方式将它们组合在一起,以便将Bob的(煎饼)和Alice的(华夫饼干)想法的集合混合在一起,按降序created_at排序,并由Thinking Sphinx正确分页.在实际使用案例中,我可以在2到15次搜索之间以这种方式组合.

我知道搜索方法返回一个ThinkingSphinx :: Search <Array.我想过手动将这些对象拼接在一起,但事实上我正在寻找排序和分页这使得这有点棘手.

在Thinking Sphinx中有没有一种优雅的方法可以做到这一点,或者我没有遗漏任何东西,我几乎不得不自己动手?

sphinx ruby-on-rails thinking-sphinx

5
推荐指数
1
解决办法
1271
查看次数