terça-feira, 6 de setembro de 2011

RMagick merge images

Alguns projetos antigos eu precisei fazer o merge de duas imagens usando o RMagick.

Por exemplo:

img1 = Magick::Image::read(file1).first
img2 = Magick::Image::read(file2).first
imgList = Magick::ImageList.new()
imgList.push(img1)
imgList.push(img2)
imgList.append(true).write('novaImagem.jpg')


Só que o push, faz uma imagem ficar embaixo da outra, não consigo setar uma posição correta.

Para fazer uma imagem de background e outra sobreposta por cima, tem um segredo que é usando o Gravity
Exemplo:

foo = Magick::Image::read('foo.jpg').first
bar = Magick::Image::read('bar.jpg').first

novaImagem = foo.composite(bar, Magick::EastGravity, 0, 0, Magick::OverCompositeOp) #the 0,0 is the x,y
novaImagem.format = 'jpeg'



Agora somente preciso acertar o posicionamento, tem outros metodos no lugar de EastGravity, pois eu quero que a imagem comece no 0,0.

Nenhum comentário:

Postar um comentário