Dart Image Library • solarize.dart

Durante muito tempo eu sonhei em fazer coisas como essas. No entanto, a vida foi me levando por outros caminhos e quando eu percebi, o tempo tinha passado. Não vou pensar no tempo perdido, afinal…

Quando comecei a aprender Python no fim de 2023, logo me dei conta de que seria necessário estabelecer alguma meta/ objetivo para esse aprendizado. Comecei a listar possibilidades dentro da fotografia. O conceito de solarização digital sempre me atraiu. Lembrei que é uma operação matemática simples, que mesmo eu conseguia imaginar ou formular.

Então na medida em que eu conhecia mais da programação, já ia pesquisando bibliotecas e pacotes de processamento de imagem. Fui tentando aprender o que era possível, no começo a partir do Python. Fiz uns scripts usando a biblioteca Pillow, depois usando Kornia e OpenCV. O que eu queria mesmo era fazer um app para ter no meu smartphone. Isso acabou me levando a tentar aprender outras coisas ao mesmo tempo. Já falei nisso aqui antes…

O caminho que eu escolhi na programação para dispositivos móveis é o do Flutter. Essa linguagem é baseada numa outra linguagem chamada Dart e herda dela seus pacotes. Existe um pacote de processamento de imagem para Dart e estudei isso por uns tempos. O pacote tem código aberto e as implementações estão no Github. Implementações nesse caso se referem ao código interno dos filtros e Dart é relativamente fácil de ler para quem lê inglês.

Fiz um fork. Estudei a implementação do filtro Invert e do filtro Normalize e, apesar de ainda não ser um grande craque do Dart, consegui juntar partes de um de do outro. Tirei algumas dúvidas fazendo buscas no StackOverflow. Introduzi minhas fórmulas para solarizar e fiz algo que considero único (já me achando): dei a opção ao usuário de fazer a solarização pelas sombras ou pelas altas luzes. Inspiração veio do Man Ray.

Quando tentei com Pillow, Kornia e OpenCV acabei optando por solarizar e inverter, para conseguir algo parecido com esse efeito. Mas já que eu ia escrever tudo do início, o melhor era já incorporar a opção no código e finalizar com um tapa no contraste para deixar tudo mais interessante.

E sim, Man Ray chama seus fotogramas de rayograms.

Montei uma app simples no Flutter e incorporei o filtro para testar meu código. Tive que fazer uns ajustes e sofri com o null safety do Dart, mas valeu. A app rodou no meu Xiaomi e fiz versões solarizadas de várias imagens da minha galeria como as que ilustram esse post.

Aqui uma comparação dos dois modos de operação do filtro: sombras (esq) e altas luzes (dir). Depois de ter certeza que o código funcionava e gerava os resultados esperados fiz um pull request. Um dos responsáveis pelo pacote aceitou minha adição.

Olho para isso, assim, disponível para quem quiser usar e penso em como foi tão fácil passar pelas partes mais difíceis, não sei porque eu demorei tanto para começar essas coisas.

De micreiro a programador num estalo ou dois…

Espaços virtuais e experimentais

Nesses últimos dias entrei numa parte dos meus cursos em que o Python é usado para criar caminhos para gerar HTML dinamicamente. Aproveitei para afiar meus códigos HTML e reaprender a escrever CSS. Numa viagem bem maluca eu lembrei quando o Jan me ensinou a fazer HTML num app chamado Hot Dog:

Isso foi há muito tempo. Logo depois apareceu Dreamweaver, que eu não tinha como rodar em casa. Eu ia ao estúdio do Clício usar no PC dele. E assim nasceu o coisasdavida ponto com que agora é bem defunto.

Na viagem atual eu comecei a descobrir diversas ferramentas interessantes para explorar o mundinho dos códigos, entre elas o Glitch, onde está esse espaço aqui:

O GitHub também oferece espaço para você hospedar uma página sobre a sua conta, lá eu criei esse cantinho aqui:

E assim vou experimentando os novos e velhos caminhos ao mesmo tempo, criando umas coisas esquisitas e usando algumas imagens mais esquecidas.

Raw no Linux, de novo, mais uma vez

Só fuçando novamente nesse assunto, que já mencionei em 3 posts no passado, mas que continua sempre na minha mente.

O Gimp continua como a ferramenta básica para retoques, aqui: https://www.gimp.org/

Para organizar e editar RAWs seguem:

E o Darktable está na versão 4.20, última vez que falei aqui ainda era 1.0 talvez: https://www.darktable.org/install/

RawTherapee também avançou muito e está aqui: https://rawtherapee.com/

Outras coisinhas:

O blog do Pascal, apesar de meio abandonado, tem umas dicas para criar perfis para impressoras: https://encrypted.pcode.nl/

Já usei o imagemagick e o negfix8 no passado, dentro do MacOS, pela linha de comando como parte de um processo para arquivos RAW criados pelo scanner Pakon.

São coisas a serem exploradas: https://imagemagick.org/ e https://sites.google.com/site/negfix/

Raw no Linux, mais uma vez

Volta e meia eu dou uma fuçada na situação do processamento de arquivos RAW através de Software Livre em plataforma Linux.

Nesse início de ano as surpresas foram muitas, o Rawstudio está prestes a ter uma versão 2.0 lançada e o apareceu também um programa chamado Darktable (um tiração com o Lightroom) que parece bem promissor. Leia um post de Pascal de Bruijn sobre o Darktable.

Um outro programa que já existia há um certo tempo é o RawTherapee, que agora se tornou livre (GPL).

Vale também ver a Wiki do projeto Open Source Photography.