Desenvolvimento

Centralizar com paperclip

Fala galerinha do barulho. Gurizada demorei pra chegar a Campo Grande mas estou aqui.

Sem mais demoras lá vai o problema: Todo mundo já quis centralizar uma imagem com fundo branco e altura definida com paperclip.

Independente de ser altura fixa, largura fixa ou qualquer coisa fixa, principalmente relacionado a CROP, achei uma solução.

Modificando a maneira de converter é possível centralizar com fundo branco.

A definição abaixo exemplifica isto

has_attached_file :photo, :styles => { :medium => "170",
:thumb => "145"},
:convert_options => { :thumb => '-background white -gravity center -extent 145',
:medium => '-background white -gravity center -extent 170' }

Agora vamos explicar o que acontece. Quando você diz nos styles que quer 170 ou 145 de largura está se referenciando a imagem. Mas a conversão em si pode ser alterada posteriormente para gerar a imagem. Quando dizemos que queremos background while e gravity center estamos definindo uma nova camada da imagem e com resolução de XXX.

Parece repetitivo mas funciona perfeitamente. Vamos pegar um exemplo legal e se a imagem puder ter uma altura muito grande e a largura não?
Dessa maneira no style você definiria

:medium => "x150"

E na conversão seria -extent x170. O resultado seria a imagem com 170 de altura mas a imagem central em 150.

Espero ter ajudado