Freak, as in freakdom

Um blag sobre cultura, política, memes e… software livre!

Arquivo da categoria ‘Sem categoria’

Brincando com ImageMagick

Ontem recebi um e-mail com um link para um arquivo ZIP gigantesco contendo dezenas de arquivos JPEG. Cada arquivo era um scan de alta resolução de uma página dos originais do Estatuto e da Ata de Fundação do Garoa Hacker Clube. Meu objetivo era gerar um PDF a partir desses arquivos contendo uma imagem em cada página.

Consultando a documentação do convert, um frontend para o ImageMagick,  descobre-se facilmente como gerar um PDF:

$ ls -lh
total 12M
-rw-r–r– 1 rodrigo rodrigo 2.5M 2011-09-05 20:49 garoa 0.jpeg
-rw-r–r– 1 rodrigo rodrigo 2.6M 2011-09-05 20:50 garoa 1.jpeg
-rw-r–r– 1 rodrigo rodrigo 2.3M 2011-09-05 20:52 garoa 2.jpeg
-rw-r–r– 1 rodrigo rodrigo 1.8M 2011-09-05 20:53 garoa 3.jpeg
-rw-r–r– 1 rodrigo rodrigo 1.3M 2011-09-05 20:57 garoa 4.jpeg
-rw-r–r– 1 rodrigo rodrigo 1.5M 2011-09-05 20:56 garoa 5.jpeg
$ convert *.jpeg ghc_ata_fundacao_highres.pdf
$ ls -lh *.pdf
-rw-r–r– 1 rodrigo rodrigo 11M 2011-09-09 17:19 ghc_ata_fundacao_highres.pdf

No entanto, já que as imagens originais são grandes, o PDF também ficou enorme. Sendo assim, usei o mesmo convert para reduzir as imagens. Como havia várias imagens, pensei imediatamente em usar um for para não ficar repetindo comandos:

$ for i in *.jpeg; do mogrify -resize 30% $i; done

Como o leitor verá, esse comando não funcionou! Os arquivos tem um espaço no nome e o argumento é interpretado incorretamente na linha de comando pois o espaço não é “escaped“. Achei um workaround para isso usando a opção -exec do comando find. Além disso, usei o mogrify, que faz a mesma coisa que o convert mas sobrescreve o arquivo original:

$ find *.jpeg -exec mogrify -resize 42% {} \;
$ ls -lh
total 13M
-rw-r–r– 1 rodrigo rodrigo 252K 2011-09-09 17:20 garoa 0.jpeg
-rw-r–r– 1 rodrigo rodrigo 272K 2011-09-09 17:20 garoa 1.jpeg
-rw-r–r– 1 rodrigo rodrigo 213K 2011-09-09 17:20 garoa 2.jpeg
-rw-r–r– 1 rodrigo rodrigo 132K 2011-09-09 17:20 garoa 3.jpeg
-rw-r–r– 1 rodrigo rodrigo 107K 2011-09-09 17:20 garoa 4.jpeg
-rw-r–r– 1 rodrigo rodrigo 128K 2011-09-09 17:20 garoa 5.jpeg

E agora é só gerar o pdf com as imagens reduzidas:

$ convert *.jpeg ghc_ata_fundacao_lowres.pdf
$ ls -lh ghc_ata_fundacao_lowres.pdf
-rw-r–r– 1 rodrigo rodrigo 1.2M 2011-09-09 17:36 ghc_ata_fundacao_lowres.pdf

nenhum comentário

Escrito por Rodrigo R. Silva

setembro 9th, 2011 at 1:44 pm

Publicado em Sem categoria

Palestra SoC 2010

Ontem o PoliGNU realizou uma palestra sobre o Google Summer of Code 2010 na Poli. O evento foi um sucesso, com cerca de 60 presentes, com direito a continuar com uma oficina de desenvolvimento de software livre no EP. Segue um link para a apresentação de slides, com algumas informações úteis:

GSoC2010-Presentation

Para registro, fica o cartaz que fiz para o evento:

cartaz_soc2010

nenhum comentário

Escrito por Rodrigo R. Silva

março 12th, 2010 at 12:55 pm

Publicado em Sem categoria

Pior que naufragar é não partir!

Parafraseio Amyr Klink para começar esse blog de uma vez por todas. Há alguns anos tenho essa ideia tão fixa em minha cabeça quanto o emplasto na de Brás Cubas, mas os posts que mais queria publicar não saem do forno (vulgo preguiça). Enfim, comecemos. Com pensamentos pequenos e às vezes desconexos.

Aproveito para deixar mais um trecho de Mar Sem Fim:

Um homem precisa viajar. por sua conta, não por meio de histórias, livros ou TV. Precisa viajar por si, com seus olhos e pés, para entender o que é seu. Para um dia plantar as suas próprias árvores e dar-lhes valor. Conhecer o frio para conhecer o calor. E o oposto. sentir a distância e o desabrigo para estar bem sob o próprio teto. Um homem precisa viajar para lugares que não conhece para quebrar essa arrogância que nos faz ver o mundo como o imaginamos, e não simplesmente como é ou pode ser; que nos faz professores e doutores do que não vimos, quando deveríamos ser alunos, e simplesmente ir ver. (Amyr Klink)

nenhum comentário

Escrito por Rodrigo R. Silva

dezembro 15th, 2009 at 1:33 pm

Publicado em Sem categoria