ImageMagick converte escala de cinza para alfa, cor, sobreposição

1

Eu tenho uma imagem em tons de cinza RGB ( não RGBA) de 24 bits representando um código de barras, que preciso processar da seguinte maneira da linha de comando :

  • Adicionar canal alfa
  • Converta qualquer um dos canais de cor em alfa (não importa qual é, em tons de cinza, para começar)
  • Inverter canal alfa
  • Converter imagem para CMYK + alfa
  • Ao preservar o canal alfa, preencha a imagem inteira com uma determinada cor sólida (por exemplo, 100% / 87% / 11% / 1%)
  • Sobreponha a imagem resultante sobre outra imagem CMYK, em um local específico (digamos 123 px da borda superior do modelo, 321 px a partir da esquerda)

Você entende o que estou fazendo - o objetivo é simplesmente sobrepor o código de barras em uma imagem de modelo, exceto que as duas imagens estão em espaços de cores separados e também preciso que o código de barras resultante tenha uma cor específica. Meu fluxo de trabalho é apenas uma sugestão, eu realmente não me importo como eu recebo de A para B.

Ah, e mais uma coisa (não tenho certeza se é relevante): é seguro assumir que eu tenho um retângulo branco puro no modelo onde o código de barras termina. Se eu tivesse sido capaz de usar um comando em lote do Photoshop, eu usaria essa suposição para derrubar todo o erro do canal alfa, e teria simplesmente colorido o original e sobreposto com multiplicação no modelo; não tenho certeza se isso é possível neste contexto.

    
por Bogdan Stăncescu 12.10.2015 / 00:37

1 resposta

1

Ok, depois de algumas boas horas de trabalho, acabei com uma solução:

convert template.tif ( barcode.png barcode.png -negate -alpha off -compose copy_opacity -composite -colorspace CMYK +level-colors "cmyk(100%, 87%, 11%, 1%)" ) -geometry +123+321 -compose over -composite output.tif

    
por 12.10.2015 / 13:36