/ / Come salvare PNG a 8 bit con ChunkyPNG o RMagick - ruby, png, rmagick, png-8

Come salvare PNG a 8 bit con ChunkyPNG o RMagick - ruby, png, rmagick, png-8

Ho cercato di salvare PNG a 8 bit (PNG8) usando RMagick (http://rmagick.rubyforge.org/) e ChunkyPNG (https://github.com/wvanbergen/chunky_png) ma non sono stati in grado di farlo.

Tuttavia, l'unica volta che riesco a farlo funzionareRMagick è se l'installazione di ImageMagick è basata sul QuantumDepth di 8 anziché sul solito 16. Non è possibile modificare questa impostazione al volo - l'installazione di ImageMagick deve essere compilata con questa impostazione. Inoltre, impostare la profondità su 8 quando si crea l'immagine o il prefisso di un tipo di formato quando il salvataggio non ha alcun effetto.

vale a dire. img.write("PNG8:image.png")

Ad ogni modo ho dato un'occhiata a ChunkyPNG e preferisco davvero usarlo su RMagick - semplicemente perché è puro Ruby e non dipende da ImageMagick, ma non posso nemmeno salvare un PNG8.

Devo convertire il PNG a 8 bit in seguito utilizzando un programma di grafica -

Le mie domande:

  1. C'è un modo per salvare correttamente i PNG a 8 bit come su ImageMagick Q8 su una macchina con ImageMagick Q16 installato?

  2. Qualcuno può fornire indicazioni su come fare il mio codificatore a 4 bit in ChunkyPNG o sapere come salvare PNG8 con esso?

Grazie in anticipo..

risposte:

5 per risposta № 1

Cosa intendi esattamente con PNG8? Scala di grigi a 8 bit, colore indicizzato a 8 bit, RGB 3x8 bit o RGBA 4x8 bit? Tutte queste modalità di colore sono supportate da ChunkyPNG.

Per impostazione predefinita, ChunkyPNG tenta di determinare la migliore modalità colore per salvare l'immagine. Puoi sovrascriverlo fornendo un hash di opzioni al metodo di salvataggio:

image.save("filename.png", color_mode: ChunkyPNG::COLOR_TRUECOLOR)
# Or: ChunkyPNG::COLOR_TRUECOLOR_ALPHA

image.to_blob(color_mode: ChunkyPNG::COLOR_INDEXED, bit_depth: 8)

Ulteriori informazioni: https://github.com/wvanbergen/chunky_png/wiki