Como agrupar nomes de arquivos de códigos de cores decimais a hexadecimais? [fechadas]

0

Eu fiz esta pergunta primeiro sobre Design Gráfico ... Desde então, eu pude aprender; e utilizar o fato de que um programa com o qual eu não estava familiarizado (ImageMagick) tem a capacidade de gerar valores RGB para o nome do arquivo usando o seguinte:

magick *.png -set colorspace RGB -set filename:f "%[pixel:p]" %[filename:f].png

Então eu dei esse passo e deu certo. Avanço rápido para a pergunta desta questão aqui. Eu tenho uma pasta cheia de arquivos de imagem feitos de uma única cor. Consegui usar o ImageMagick como mostrado acima para alterar os nomes dos arquivos para corresponder às cores contidas nas respectivas imagens. Aqui está uma captura de tela de dentro da pasta:

Minhaúnicaperguntaé:comoconverterosnomesdearquivosdoformatodecimalparahexadecimal?

Então,porexemplo,eugostariaqueosnomesdosarquivosfossemalteradosde"rgb (13,12,12) .png" para o código de cor hexadecimal correspondente: "0D0C0C.png"

Isso está se tornando mais difícil do que eu esperava ... Um script do Windows cmd ou um BAT que eu poderia executar seria o ideal. Alguém aqui pode me ajudar a fazer isso?

  • Estou no Windows 10 e instalei o GOW (GNU On Windows), que me oferece a seguinte ferramenta * nix listada aqui .
    Nota do editor: A lista inclui os seguintes programas que (IMO) podem ser úteis: sed, bash, bc, dc, expr, printf (e, claro, mv) - mas, notavelmente, não awk.
por BANG 02.06.2017 / 23:50

2 respostas

1

Com o Powershell, você poderia:

  • use "rgb(13,12,12).png" -replace "rgb(","" para remover os quatro primeiros
  • use "13,12,12).png" -replace ").png","" para remover o fechamento
  • use "13,12,12" -split "," para separar as peças
  • use "{0:x}" -f 13 para converter 13 em hexadecimal

Isso deve começar você.

Se você ficar preso em uma parte específica disso, poderá atualizar sua pergunta.

    
por 03.06.2017 / 00:12
1

Sua pergunta não especifica com qual tipo de script você deseja fazer isso. Você pode usar python:

import os

for filename in os.listdir('<your-directory>'):
    if filename.endswith('png'):
        rgb = filename.strip('rgb(').strip(').png').split(',')
        hex = [format(int(c), '02x') for c in rgb]
        new_filename = ''.join(hex) + '.png'
        os.rename(filename, new_filename)

Isso pressupõe que todos os arquivos png nesse diretório estão no formato que você especificou.

    
por 03.06.2017 / 00:22